首页 > 软件 > 如何在c 中调用图片

如何在c 中调用图片

软件 2024-03-18

用C语言怎样调用图片?要一个完整的,有重奖!

如果只是读数据,用file open就行,如果想显示,最简的是shell外调系统程序打开图片,如果想自已读,自已绘制出来,bmp的还好,数据格式很简单,一个像素一个像素的读写就是了,如果是jpg, tif等等,压缩算法你是写不出来的。代码很长,这儿不发表了。如果想支持各种格式的图像,你还是用现有的库吧,别指望自已能弄出来。

如何用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);

}

扩展资料

C语言实现一个图片的读出和写入

#include

#include

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\n",size);

FILE * pFile,*qw;

char *buffer=(char*)malloc(sizeof(char)*size);

qw =fopen("qw","r");

pFile = fopen ( "qwe" , "wb" );

printf("%d==\n",pFile);

printf("%d\n",size);

fread(buffer,1,size,qw);

fwrite (buffer , sizeof(byte), size , pFile );

fclose (pFile);

rename("qwe","Groot.jpg");

return 0;

}

C语言调用图片

VC里面可以直接调用bmp格式的文件 用CBitmap类就可以了 //CBitmap对象 CBitmap bitMap; //设备环境类对象 CDC dcMemory; //加载资源位图 bitMap.LoadBitmap(IDB_BITMAP1); //bitMap.LoadBitmap("xxx.bmp"); //创建内存设备环境 dcMemory.CreateCompatibleDC(pDC); //把位图选进内存设备环境,并保存旧的GDI位图对象 CBitmap *oldBitmap = dcMemory.SelectObject(&bitMap); //显示 //pDC->BitBl

用C++如何读取图片

实现的方法和详细的操作步骤如下:

1、第一步,在图片采样软件中找到软件快捷方式,然后单击以打开该软件,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,已经进入了取模软件,单击“载入图片”按钮以添加图片,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,选择要添加的图片,单击以选择图片,然后单击“打开”按钮,如下图所示,进入下一步。

4、然后,完成上述步骤后,单击“参数”按钮以进入图片参数设置界面,如下图所示,然后进入下一步。

5、随后,完成上述步骤后,根据实际情况进行相关参数的设置,如下图所示,然后进入下一步。

6、接着,完成上述步骤后,单击“参数确认”按钮,如下图所示,然后进入下一步。

7、然后,完成上述步骤后,单击“数据保存”按钮,如下图所示,然后进入下一步。

8、随后,完成上述步骤后,选择文件保存路径,然后单击“保存”按钮,如下图所示,然后进入下一步。

9、最后,完成上述步骤后,可以看到刚刚生成的图片C文件,只需将代码添加到C语言中即可,如下图所示。这样,问题就解决了。

c语言调用图片函数

c语言调用图片函数 据我所知Matlab有,imshow(),c好象没有,c只能先将图片读到内存中,经过相关处理后以一定的格式保存到硬盘中,然后再打开图片. 读图和存图需要有专门的函数,这些可以参考: unsigned char* ReadBMPData(int Width, int Height, char *fname)//图像的宽和高,图像的位置(包括后缀) { unsigned char* image = new unsigned char[Width*Height]; FILE *fp; fp = fopen(fname, "rb"); fread(image, 1, Width*H

标签:编程 信息技术 编程语言 CC++ 图片

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18