⑴ 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] = '