当前位置:首页 » 编程语言 » 用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;
}