當前位置:首頁 » 存儲配置 » c存儲圖片

c存儲圖片

發布時間: 2022-05-04 11:30:41

1. 請問怎麼保存用c語言畫出的圖形

我的想法是:直接讀取顯存內容,讀出像素值,然後自己寫個圖像文件頭數據,再一起存入文件.

2. linux c 圖片存儲

打開文件後,你可以用fseek到文件尾,用ftell獲取文件大小,就可以知道這個圖的大小了,存buff里沒問題的

3. 用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;

}

(3)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] = ''; /*去掉換行符*/

printf("%s %d ",buf,len - 1);

}

return 0;

}




4. c語言中如何導入圖片

1、首先先在圖片取模軟體找到軟體快捷方式,點擊打開軟體。

5. C語言畫圖__並保存我畫的圖片

BMP格式是公開的,非常簡單,有一個固定結構的頭,存儲圖像的寬度、高度、色深等數據,後面的數據都是以四個一組的位元組數據,存儲R
G
B
F信息,也就是一個像素點的顏色。msdn上有相關的示例。

6. 請問如何使用純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);//關閉指針}

7. C語言編程--圖像數據保存為JPEG格式圖像

save的時候存成jpeg

8. 怎樣保存C語言畫出的圖片

用截屏的方式看能不能 復制出來

9. C++/C 已經得到了一個圖片(24位的BMP)含有RGB值的數組,不知道怎麼把它存儲到電腦上面,存儲為一個bmp文

你的等級是三級,我就不怎麼要求了。

我以前做了些工作,剛才改了一下:
注意不同編譯器(我主要指的是TC可能要修改一下WORD的定義之類的)

#include <mem.h>
#include <dos.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#pragma pack(1)

typedef unsigned char BYTE; /*一個位元組的整型*/
typedef unsigned short int WORD; /*兩個位元組的整型*/
typedef unsigned long DWORD; /*四個位元組的整型*/

/*文件頭結構*/
typedef struct tagBITMAPFILEHEADER
{
WORD bfType; /*文件類型,BM為BMP*/
DWORD bfSize; /*文件的大小(位元組)*/
WORD bfReserved1; /*保留*/
WORD bfReserved2; /*保留*/
DWORD bfOffBits; /*本結構開始處至圖形陣列的偏移位元組數*/
}BITMAPFILEHEADER;

/*文件信息頭結構*/
typedef struct tagBITMAPINFOHEADER
{
DWORD biSize; /*本結構的位元組數*/
DWORD biWidth; /*以像素數表示圖形的寬度*/
DWORD biHeight; /*以像素數表示圖形的高度*/
WORD biPlanes; /*色彩平面數,必須為1*/
WORD biBitCount; /*一個像素所佔的位數,可以是1、4、8、24*/
DWORD biCompression; /*圖形壓縮形式,0為不壓縮*/
DWORD biSizeImage; /*圖形的位元組數*/
DWORD biXPelsperMeter; /*1米內的水平像素數*/
DWORD biYPelsPerMeter; /*1米內的垂直像素數*/
DWORD biClrUsed; /*圖形中實際用到的像素數*/
DWORD biClrlmportant; /*圖形中的重要的顏色數*/
}BITMAPINFOHEADER;

/*顏色*/
typedef struct tagrgb
{
BYTE B;
BYTE G;
BYTE R;
}rgbDATA;

int main(int argc,char *argv[])
{
DWORD Height=240,Width=320;
DWORD BytePerLine,FillZeroNum,PixelN;
DWORD i,j;

BITMAPFILEHEADER fileheader;
BITMAPINFOHEADER infoheader;

rgbDATA *rgbdata;
BYTE *R,*G,*B;

char *BMtype="BM";
char Zeros[5]="\0\0\0\0";
FILE *fpout;

/*這里生成rgb顏色*/
PixelN=Height*Width;
R=(BYTE *)malloc(sizeof(BYTE)*PixelN);
G=(BYTE *)malloc(sizeof(BYTE)*PixelN);
B=(BYTE *)malloc(sizeof(BYTE)*PixelN);
rgbdata=(rgbDATA *)malloc(sizeof(rgbDATA)*PixelN);
for (i=0;i<PixelN;i++)
{
R[i]=255;
G[i]=0;
B[i]=0;
R[i]=rand()%256;
G[i]=rand()%256;
B[i]=rand()%256;
}

for (i=0;i<PixelN;i++)
{
rgbdata[i].R=R[i];
rgbdata[i].G=G[i];
rgbdata[i].B=B[i];
}

/*寫*/
fpout=fopen("d:\\abc.bmp","wb");
if (fpout==NULL)
{
printf("Can not open file!\nPress any key to exit:");
getch();
exit(0);
}

/****生成BMP文件頭*/
BytePerLine=(3*Width+3)&0xFFFFFFFC; /*每行多少個位元組,包括補零*/
FillZeroNum=(3*Width)&0x03; /*補零的個數*/

fileheader.bfType=*((WORD *)(BMtype));
fileheader.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+Height*BytePerLine;
fileheader.bfReserved1=0;
fileheader.bfReserved2=0;
fileheader.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
infoheader.biSize=sizeof(BITMAPINFOHEADER);
infoheader.biWidth=Width;
infoheader.biHeight=Height;
infoheader.biPlanes=1;
infoheader.biBitCount=24;
infoheader.biCompression=0;
infoheader.biSizeImage=Height*BytePerLine;
infoheader.biXPelsperMeter=(WORD)(300*39.37007874);
infoheader.biYPelsPerMeter=(WORD)(300*39.37007874);
infoheader.biXPelsperMeter=0;
infoheader.biYPelsPerMeter=0;
infoheader.biClrUsed=0;
infoheader.biClrlmportant=0;
fwrite(&fileheader,sizeof(fileheader),1,fpout);
fwrite(&infoheader,sizeof(infoheader),1,fpout);

for (i=0;i<Height;i++) /*注意:JPG從左上角開始,往右往下;而BMP是從左下角開始,往右往上*/
{
fwrite(&(rgbdata[i*Width]),sizeof(rgbDATA),Width,fpout);
if (FillZeroNum)
fwrite(Zeros,sizeof(BYTE),4-FillZeroNum,fpout);
}
fclose(fpout);
free(R);
free(G);
free(B);
free(rgbdata);
printf("OK");
getch();
return 0;
}

10. C語言 保存BMP文件

你是怎麼處理的呢,處理後的數據在哪呢。在數組中嗎,還是說直接在原文件上處理了。
另存為,就是用「wb」方式另外創建一個空文件,把這些數據按照BMP的格式寫進去。

熱點內容
除黑頭粉刺清理解壓視頻 發布:2024-11-17 16:32:41 瀏覽:305
115瀏覽器安卓版在哪裡下載 發布:2024-11-17 16:30:56 瀏覽:435
從哪裡找電腦密碼 發布:2024-11-17 16:26:31 瀏覽:689
我的世界空島戰爭伺服器ip地址 發布:2024-11-17 16:17:53 瀏覽:54
虛擬機配置g4是什麼意思 發布:2024-11-17 16:11:09 瀏覽:140
rhce腳本題 發布:2024-11-17 15:58:44 瀏覽:304
通訊錄上傳失敗 發布:2024-11-17 15:51:26 瀏覽:329
雲存儲存在哪裡 發布:2024-11-17 15:42:09 瀏覽:369
python動態 發布:2024-11-17 15:41:27 瀏覽:115
通用的安卓充電器是什麼型號 發布:2024-11-17 15:40:41 瀏覽:744