當前位置:首頁 » 編程語言 » 用c語言打開保存圖片
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

用c語言打開保存圖片

發布時間: 2023-05-29 04:23:50

A. c語言如何打開圖片 比如在C:\1.jpg 如何用C語言直接打開啊 像雙擊打開一樣的。

想太多,圖片也就是像素點構成。可以用軟體把圖片轉化成十六進制數組,用C語言打開

B. 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. 用C++如何讀取圖片

實現的方法和詳細的操作步驟如下:

1、第一步,在圖片采樣軟體中找到軟體快捷方式,然後單擊以打開該軟體,如下圖所示,然後進入下一步。

D. 用c語言打開一個bmp文件,修改其中的數據,並保存。用看圖軟體查看這張圖片時,發現圖像中間多了一個圓。

讀入BMP,保存圖舉核亂像信息 和 圖氏氏像數據;
根據圓的公式,計算需要改變的像素點,然後修改;
再然後根據BMP的格式,將數據寫到正檔磁碟上;

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

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

2、現在進入到了取模軟體,點擊「載入圖片」,現在就可以進行添加圖片了。

3、選擇需要添加的圖片,點擊選擇圖片,塌螞然後單擊「打開」。

4、現在點擊「設置」進入圖片參數設置。

5、現在有輸出格式,取模方式,圖片截取范圍一些參數設置進行設置。

6、如果確認無誤,直接單擊「參數確認就可以了」。

7、然後進行數據保存,點擊數團簡埋據保存。

8、選擇咐尺文件保存路徑,點擊「保存」就可以了。

9、現在就可以看到剛才生成的圖片C文件了,直接將代碼添加進C語言就可以了。

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

}

(6)用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;

}




G. 如何用c語言讀取圖片

#include

using namespace std;

#define Twoto1(i,j,w) i*w+j

void createimage(unsigned char *&img, int w, int h)

{img = new unsigned char[w*h];}

void delateimage(unsigned char*img)

{delete []img;}

void readimage(unsigned char*img, int w, int h, char *fname)

{

FILE *fp;

fopen_s(&fp,fname, "rb");

if (fp == NULL){ cout << "error" << endl; return; }

size_t result;

result=fread(img , sizeof(unsigned char), w*h, fp);

if (result != w*h)

{

cout << "Reading error" << endl;

return;

}

else

cout << "Reading Ok!" << endl;

fclose(fp);

}

void mobanjuanji(unsigned char image, unsigned char*image1, int w, int h, float moban[5][5])

{

for (int i = 0; i for (int j = 0; j if (iw - 3 || j>h - 3)

image1[Twoto1(i,j,w)] = 0;

else

{

float temp = 0;

for (int m = 0; m<5; m++)

for (int n = 0; n<5; n++)

{

temp += (image[Twoto1(i-2+m,j-2+n,w)] moban[m][n]);

}

if (temp>255) image1[Twoto1(i, j, w)] = 255;

else if (temp<0) image1[Twoto1(i, j, w)] = 0;

else image1[Twoto1(i, j, w)] = temp;

}

}

void saveimage(unsigned char *img, int w, int h, char *fname)

{

FILE *fp;

fopen_s(&fp, fname, "wb");

if (fp == NULL) { cout << "error" << endl; return; }

size_t result;

result = fwrite(img, sizeof(unsigned char), w*h, fp);

if (result != w*h)

{

cout << "Write error" << endl;

return;

}

else

cout << "Write Ok!" << endl;

fclose(fp);

}

void main()

{

unsigned char *img;

unsigned char *img1;

float moban[5][5] = { {0,0,0,0,0},{0, -1, 0, 1, 0 }, { 0, -2, 0, 2, 0 }, { 0, -1, 0, 1, 0 }, { 0,0,0,0,0 } };

//float moban[5][5] = { 0 };

int w = 512, h = 512;

createimage(img, w, h);

createimage(img1, w, h);

readimage(img, w, h, "E:ss.raw");

mobanjuanji(img, img1,w, h, moban);

saveimage(img, w, h, "E:ss_1.raw");

saveimage(img1, w, h, "E:ss_2.raw");

delateimage(img);

delateimage(img1);

}

(7)用c語言打開保存圖片擴展閱讀

C語言實現一個圖片的讀出和寫入

#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;

}

H. C語言怎麼輸出一張圖片

輸出到文件的話,按照指定圖片格式,寫入文件即可。

電腦型號:微星 GF63 Thin 9SC

系統版本:Microsoft Windows 10

文本文件

1、打開電腦上要讀取的文本文件。



I. 怎麼用C語言讀入、轉存一個 BMP圖片啊。。。

給你C++的代碼吧呵呵,C的也差不多,稍微修改一下就行了
主要是你要了宏穗慎解BMP文件的結構,就是文件頭那裡所族簡包含的信息,這里用了BITMAPINFOHEADER等現成的結構體來處理,BMP的文件頭網路一下就知道的啦,很多資料
#include
"fstream.h"//24bit
bitmap
bool
CBitmapWindow::LoadFile
(char
*bmpFile)
{
FILE
*fp;
if((fp=fopen(bmpFile,"rb"))==NULL)
return
false;
WORD
bfType;
DWORD
bfSize;
WORD
bfReserved1;
WORD
bfReserved2;
DWORD
bfOffBits;
BITMAPINFOHEADER
bih;
fread(&bfType,sizeof(WORD),1,fp);
if(bfType!=0x4d42)
return
false;
fread(&bfSize,sizeof(DWORD),1,fp);
fread(&bfReserved1,sizeof(WORD),1,fp);
fread(&bfReserved2,sizeof(WORD),1,fp);
fread(&bfOffBits,sizeof(DWORD),1,fp);
fread(&bih,sizeof(BITMAPINFOHEADER1),1,fp);
nWidth=bih.biWidth
;
nHeight=bih.biHeight;
if(nWidth
%
4
!=0)
nWidth=nWidth+
(4-nWidth
%
4);
//修正點陣圖寬度值
DWORD
size=nWidth*bih.biBitCount/8*nHeight;
arrayColor=new
ZafLogicalColor[nWidth*nHeight];
//
LPSTR
pData=new
char[size];
unsigned
char*
pData=new
unsigned
char[size];
fread(pData,size,1,fp);
int
bmWidthBytes=nWidth*bih.biBitCount
/8;
int
bmBitsPixel=bih.biBitCount
;
int
nBit=bmBitsPixel/8;
colorTableBitmap*
clrTableBmp;
clrTableBmp=new
colorTableBitmap[nWidth*nHeight];
char
cBit[40];
int
z;
for
(int
y=0;y<蔽敬nHeight;y++)
{
for
(int
x=0;x<nWidth;x++)
{
z=nHeight-y-1;
clrTableBmp[y*nWidth+x].nIndex
=y*nWidth+x;
clrTableBmp[y*nWidth+x].iBlue
=pData[x*nBit+z*bmWidthBytes];
clrTableBmp[y*nWidth+x].iGreen
=pData[x*nBit+1+z*bmWidthBytes];
clrTableBmp[y*nWidth+x].iRed=pData[x*nBit+2+z*bmWidthBytes];
sprintf(cBit,",%d:%d:%d:%d",y*nWidth+x,pData[x*nBit+z*bmWidthBytes],
pData[x*nBit+1+z*bmWidthBytes],
pData[x*nBit+2+z*bmWidthBytes]);
}
}
delete
[]clrTableBmp;
delete
[]pData;
fclose(fp);
return
true;
}