⑴ c語言中getimage(69,169,131,231,buf)括弧裡面的各種數字
把點陣圖存到主存儲里么,,,嗯數字是4個頂點坐標撒
⑵ c語言中getimage()的作用及用法
getimage() 保存圖像函數
功能: 函數getimage()保存左上角與右下角所定義的屏幕上像素圖形到指定的內存區域。
用法: 該函數調用方式為void getimage(int left,int top,int right,int bottom,void *buf);
說明: 函數中參數(left,top)為要保存的圖像屏幕的左上角,(right,bottom)為其右下角,buf指向保存圖像的內存地址。調用getimage()保存屏幕圖像,可用imagesize()函數確定保存圖像所需位元組數,再用malloc()函數分配存儲圖像的內存(內存分配必須小於64KB),還可以用下面函數putimage()輸出getimage()保存的屏幕圖像。
這個函數對應的頭文件為graphics.h
返回值: 無
例: 把帶有兩對角線的矩形拷貝到屏幕其它位置上:
#include<garphics.h>
#include<stdlib.h>
#include<conio.h>
void main()
{
int driver,mode;
unsigned size;
void *buf;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
sector(15);
rectangle(20,20,200,200);
setcolor(RED);
line(20,20,200,200);
setcolor(GREEN);
line(20,200,200,20);
getch();
size=imagesize(20,20,200,200);
if(size!=-1){
buf=malloc(size);
if(buf){
getimage(20,20,200,200,buf);
putimage(100,100,buf,COPy_PUT);
putimage(300,50,buf,COPy_PUT);
}
}
outtext("press a key");
getch();
restorecrtmode()
⑶ C語言getimage()得到的數據結構是怎樣的
這是tc 一個圖形庫函數的實現
void fgetimage(char *s,int x0,int y0,int x1,int y1) /*拷貝圖像*/
{register int j,n[4]={256,512,128,384};
int temp;register char page_new,page_old,page_end;
register long position;
register char *p=MK_FP(0xa000,0000);
register FILE *fp;
if((fp=fopen(s,"wb"))==NULL)return;
fseek(fp,0,SEEK_SET);
temp=x1-x0+1;fwrite(&temp,2,1,fp);
temp=y1-y0+1;fwrite(&temp,2,1,fp);
page_old=8;
selectpage(page_old);
for(j=y0;j<=y1;j++)
{position=640l*j+x0;
page_new=position/65536;
page_end=(position+x1-x0+1)/65536;
if(page_new!=page_old)
{selectpage(page_new);page_old=page_new;} /*處理跳行跨頁*/
if(page_new!=page_end) /*處理顯示行跨頁*/
{fwrite(p+position%65536,n[page_new]-x0,1,fp);
selectpage(page_new+1);
fwrite(p,x1-n[page_new]+1,1,fp);
selectpage(page_new);
}
else fwrite(p+position%65536,x1-x0+1,1,fp);
}
fclose(fp);
}
基本沒必要知道內部存儲數據的方法 這根據具體實現有關
不過你說的這目的 得用比較高級的庫了 因為vc tc的實現都是簡單把這結構當作一個 「緩存」
so 只能找些開源圖形庫看了
⑷ c語言中的美麗圖案的代碼
敲出來是一個我愛你的圖形。
for(double y=2.5;y>=-1.6;y=y-0.2)
{
for(double x=-3;x<=4.8;x=x+0.1)
((x*x+y*y-1)*(x*x+y*y-1)*(x*x+y*y-1)<=3.6*x*x*y*y*y
|| (x>-2.4 && x<-2.1 && y<1.5 && y>-1)
|| (((x<2.5 && x>2.2) || (x>3.4 && x<3.7)) && y>-1 && y<1.5)
|| (y>-1 && y<-0.6 && x<3.7 && x>2.2))?printf("*"):printf(" ");
printf("\n");
}
⑸ 運動的小球 C語言
int n;
scanf("%d",&n);
for (int j=0; j<n; j++)
{
for(i=0; i<185; i++)
{
putimage(70+i, 170, buf, COPY_PUT); /*左邊球向右運動*/
putimage(500-i, 170, buf, COPY_PUT); /*右邊球向左運動*/
}
for(i=0;i<185; i++)
{
putimage(255-i, 170, buf, COPY_PUT);
putimage(315+i, 170, buf, COPY_PUT);
}
}
⑹ c語言 關於圖像的移動
授人以魚不如授人以漁,通過鍵盤控制實現圖形的移動,可以看這個課程,很簡單的課程,我的原創:http://tieba..com/f?kz=778064473
如果有時間,建議從第一篇看起,每篇都很簡單的。
⑺ 用c語言如何讀取和保存jpg圖片文件
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int file_size(char* filename)//獲取文件名為filename的文件大小。
{
FILE *fp = fopen(filename, "rb");//打開文件。
int size;
if(fp == NULL) // 打開文件失敗
return -1;
fseek(fp, 0, SEEK_END);//定位文件指針到文件尾。
size=ftell(fp);//獲取文件指針偏移量,即文件大小。
fclose(fp);//關閉文件。
return size;
}
int main ()
{
int size=0;
size=file_size("qw");
printf("%d ",size);
FILE * pFile,*qw;
char *buffer=(char*)malloc(sizeof(char)*size);
qw =fopen("qw","r");
pFile = fopen ( "qwe" , "wb" );
printf("%d== ",pFile);
printf("%d ",size);
fread(buffer,1,size,qw);
fwrite (buffer , sizeof(byte), size , pFile );
fclose (pFile);
rename("qwe","Groot.jpg");
return 0;
}
(7)c語言getimage擴展閱讀:
c語言讀取TXT文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024
int main()
{
char buf[MAX_LINE]; /*緩沖區*/
FILE *fp; /*文件指針*/
int len; /*行字元個數*/
if((fp = fopen("test.txt","r")) == NULL)
{
perror("fail to read");
exit (1) ;
}
while(fgets(buf,MAX_LINE,fp) != NULL)
{
len = strlen(buf);
buf[len-1] = '