‘壹’ C语言 存图片问题
你到画图面版里把你的BMP图打物键开,另存为的时候改成JPG格式,或者在你的电脑中打开文件夹选项把带有后缀的文件名的勾去掉,在BMP的图片后面更改成你需要的御卖格式
然后用C语言编辑图片镇蚂逗,我相信很简单的
‘贰’ 请问如何使用纯C语言读取文件中的图片,并将图片存储在二维数组中
1、使用双层循环语句,就可以依次把数据顺序读入到一个二维数组当中了。2、例程:#include#include#defineMAXLINE3#defineMAXCOLUMN10voidmain(void){FILE*fp;//文件指针chararr[MAXLINE][MAXCOLUMN]={0};//定义3行10列的二维数组并初始化inti=-1;if((fp=fopen("./test/filename.txt","r"))==NULL){//打开txt文件perror("Fileopenerror!\n");return;}while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL)//读取一行并存到指猜arr数组printf("%d:",i);//打印行号//puts(arr[i]);char*subarr=strtok(arr[i],"");//以空格为分隔符从arr[i]中获得字串while(subarr!=NULL){data[i][j]=atoi(subarr);//将字串转为int型数据存入data数组printf("%d\t",data[i][j]);//打印data[i][jsubarr=strtok(NULL,"");//继续获得arr[i]中的字串j++;/侍逗雀/data数老早组列加一}printf("\n");}//循环完毕后,所有数据已在data数组中printf("\n");fclose(fp);//关闭指针}
‘叁’ C语言画图__并保存我画的图片
加些分纯携上去,做扒伏我把代码贴上来。
/此旅* HELLO.C -- Hello, world */
#include <graphics.h>
#include <stdio.h>
void save_pic(char *fn,int maxx,int maxy){
typedef long LONG;
typedef unsigned char BYTE;
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
int i,j;
FILE *fp;
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bif;
int color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};
unsigned char rgb[64]={0,0,0,0,0,0,128,0,0,128,0,0,0,128,128,0
,128,0,0,0,128,0,128,0,128,128,0,0,128,128,128,0
,192,192,192,0,0,0,225,0,0,255,0,0,0,255,255,0
,255,0,0,0,255,0,255,0,255,255,0,0,255,255,255,0};
union
{
unsigned char value;
struct
{
unsigned c1:4;
unsigned c2:4;
}color;
}mycolor;
bfh.bfType=0x4d42;
bfh.bfSize=153718;
bfh.bfReserved1=0;
bfh.bfReserved2=0;
bfh.bfOffBits=118;
bif.biSize=40;
bif.biWidth=640;
bif.biHeight=480;
bif.biPlanes=1;
bif.biBitCount=4;
bif.biCompression=0;
bif.biSizeImage=0;
bif.biXPelsPerMeter=0;
bif.biYPelsPerMeter=0;
bif.biClrUsed=0;
bif.biClrImportant=0;
fp=fopen(fn,"wb");
fwrite(&bfh,sizeof(bfh),1,fp);
fwrite(&bif,sizeof(bif),1,fp);
fwrite(rgb,sizeof(rgb),1,fp);
for(j=maxy-1;j>=0;j--){
for(i=0;i<maxx;i+=2){
mycolor.color.c2=color[getpixel(i,j)];
mycolor.color.c1=color[getpixel(i+1,j)];
putc(mycolor.value,fp);
}
}
fclose(fp);
}
main()
{
int gd=DETECT,gm;
int maxx,maxy,key;
registerbgidriver(EGAVGA_driver); /*用了这个函数后,你的程序就算在下面没指明BGI
路径也能在每台机器上运行,具体做法见我们论坛上贴子,<独立图形程序的建立>
http://www.sprogram.cn/bbs/read.php?tid=56
不用这函数就要指明TC下BGI 的路径*/
initgraph(&gd,&gm,"");/*如没有完成上面步骤,""内写上TC中 BGI路径,如我的是d:\\tc3\\BGI*/
maxx=getmaxx()+1;
maxy=getmaxy()+1;
setcolor(14);
circle(maxx/2,maxy/2,50);
setcolor(15);
line(maxx/2-100,maxy/2-50,maxx/2+100,maxy/2-50);
save_pic("t.bmp",maxx,maxy);
getch();
closegraph();
}
‘肆’ c语言如何把自身的图形界面保存成一张图片
两个回复的笑死人,LZ的评论更有意思,嘿嘿,看见好多这样子评论别人的问虚困题的,为了不让奸人得逞,我觉得渣誉丛也留个回复在下面,好使得当没有LZ满意的答案如樱的时候不至于选择上面的两个,哈哈~~~
这个问题我不懂,所以我的不能解决了~~~
期待高人留下答案,以供后来者学习之~~~
忍不住就评论了一下,^^
‘伍’ 用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;
}
(5)c语言怎么储存图片扩展阅读:
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] = '