C语言图片加载函数 c语言调用图片

c语言调用图片函数c语言调用图片函数
据我所知Matlab有,imshow(),c好象没有,c只能先将图片读到内存中,经过相关处理后以一定C语言图片加载函数的格式保存到硬盘中,然后再打开图片.
读图和存图需要有专门C语言图片加载函数的函数,这些可以参考:
unsigned char* ReadBMPData(int Width, int Height, char *fname)//图像C语言图片加载函数的宽和高,图像的位置(包括后缀)
{
unsigned char* image = new unsigned char[Width*Height];
FILE *fp;
fp = fopen(fname, "rb");
fread(image, 1, Width*Height, fp);
fclose(fp);
return image;
}
///////////////////////////
void WriteRawData(unsigned char* image, int Width, int Height, char *fname)
{
FILE *fp;
fp = fopen(fname, "wb");
fwrite(image, 1, Width*Height, fp);
fclose(fp);
}
c语言读取图片的函数是那些?#include graphics.h
int main()
{
int gdriver, gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(gdriver, gmode, "c:\\tc");
bar3d(100, 100, 300, 250, 50, 1); /*画一长方体*/
getch();
closegraph();
return 0;
}
有时编程者并不知道所用的图形显示器适配器种类, 或者需要将编写的程序 用于不同图形驱动器, Turbo C提供了一个自动检测显示器硬件的函数, 其调用
格式为:
void far detectgraph(int *gdriver, *gmode);
其中gdriver和gmode的意义与上面相同 。
例5. 自动进行硬件测试后进行图形初始化
#include graphics.h
【C语言图片加载函数 c语言调用图片】 int main()
{
int gdriver, gmode;
detectgraph(gdriver, gmode); /*自动测试硬件*/
printf("the graphics driver is %d, mode is %d\n", gdriver, gmode); /*输出测试结果*/
getch();
initgraph(gdriver, gmode, "c:\\tc");
/* 根据测试结果初始化图形*/
bar3d(10, 10, 130, 250, 20, 1);
getch();
closegraph();
return 0;
}
上例程序中先对图形显示器自动检测, 然后再用图形初始化函数进行初始化设置, 但Turbo C提供了一种更简单的方法, 即用gdriver= DETECT 语句后再跟 initgraph()函数就行了 。采用这种方法后, 上例可改为:
例6.
#include graphics.h
int main()
{
int gdriver=DETECT, gmode;
initgraph(gdriver, gmode, "c:\\tc");
bar3d(50, 50, 150, 30, 1);
getch();
closegraph();
return 0;
}
另外, Turbo C提供了退出图形状态的函数closegraph(), 其调用格式为:void far closegraph(void);调用该函数后可退出图形状态而进入文本方式(Turbo C 默认方式), 并释放用于保存图形驱动程序和字体的系统内存 。
C语言如何引用背景图片直接添加个图片控件,然后拉张图片进去就可以了阿
或这动态加载图片:
HRESULT ShowPic(char *lpstrFile,HWND hWnd)
{
HDC hDC_Temp=GetDC(hWnd);
IPicture *pPic;
IStream *pStm;
BOOL bResult;
HANDLE hFile=NULL;
DWORD dwFileSize,dwByteRead;
//打开图形文件
hFile=CreateFile(lpstrFile,GENERIC_READ,
FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile!=INVALID_HANDLE_VALUE)
{
dwFileSize=GetFileSize(hFile,NULL);//获取文件字节数
if (dwFileSize==0xFFFFFFFF)
return E_FAIL;
}
else
{
return E_FAIL;
}
//分配全局存储空间
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
LPVOID pvData = https://www.04ip.com/post/NULL;
if (hGlobal == NULL)
return E_FAIL;
if ((pvData = https://www.04ip.com/post/GlobalLock(hGlobal)) == NULL)//锁定分配内存块
return E_FAIL;
ReadFile(hFile,pvData,dwFileSize,dwByteRead,NULL);//把文件读入内存缓冲区
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal, TRUE, pStm);
//装入图形文件
bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)pPic);
if(FAILED(bResult))
return E_FAIL;
OLE_XSIZE_HIMETRIC hmWidth; //图片的真实宽度, 单位为英寸
OLE_YSIZE_HIMETRIC hmHeight; //图片的真实高度, 单位为英寸
pPic-get_Width(hmWidth);
pPic-get_Height(hmHeight);
//转换hmWidth和hmHeight为pixels距离 , 1英寸=25.4毫米
int nWidth = MulDiv(hmWidth,GetDeviceCaps(hDC_Temp,LOGPIXELSX),2540);
int nHeight = MulDiv(hmHeight,GetDeviceCaps(hDC_Temp,LOGPIXELSY),2540);
//将图形输出到屏幕上(有点像BitBlt)
bResult=pPic-Render(hDC_Temp,0,0,nWidth,nHeight,0,hmHeight,hmWidth,-hmHeight,NULL);
hmHeight,NULL);
pPic-Release();
CloseHandle(hFile);//关闭打开的文件
if (SUCCEEDED(bResult))
{
return S_OK;
}
else
{
return E_FAIL;
}
}
上面是具体实现的函数代码,第一个参数是图片的存放的位置,第二个参数是窗口句柄
这样就可以动态显示图片了,在vc上已亲测可编译运行
-物联网校企联盟技术部
C语言 怎么将图片导入 并获得图片地址?并使用函数处理这个图片?step1,获取图片文件字节数size
step2,动态申请size大小的空间 , 首地址给指针pData;
step3,open函数以二进制模式打开图片文件 , 用fread函数将图片读到pData所指的内存空 间
step4, 接下来就是操作指针的说
c语言中,如何在运行时显示一张图片,函数,用法 , 谢谢大神如果C语言图片加载函数你有图片(例如 wzzx.jpg) 程序中插一句C语言图片加载函数:
system("mspaint wzzx.jpg");就可以 在运行时显示这张图片 。
用字符串变量调用也可以C语言图片加载函数:
char pic_name[80]="wzzx.jpg";
char cmd[100];
sprintf(cmd,"mspaint %s",pic_name);
system(cmd);// 显示图片
请问C语言怎么调用图片直接调用并显示JPG BMP等格式图片的函数好像没有,要自己编写 。
首先要弄清楚图片格式的编码方式,然后设置分辨率 , 可以显示出来 。
void far getimage(int left,int top,int right,int bottom,void far *buf)
说明:把屏幕图形部分拷贝到由BUF所指向的内在区域 , 左上角和右下角图标 。用函数IMAGESIZE()来确定存储图像所需字节数 。用GETIMAGE()存储的图像可以用PUTIMAGTE()函数写到屏幕上 。
关于C语言图片加载函数和c语言调用图片的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读