c语言图片显示函数,c语言输出图片的函数

c语言中,如何在运行时显示一张图片,函数,用法,谢谢大神

如果你有图片(例如 wzzx.jpg) 程序中插一句:

成都创新互联-成都网站建设公司,专注成都网站设计、成都网站建设、外贸网站建设、网站营销推广,域名与空间,网站空间成都网站托管有关企业网站制作方案、改版、费用等问题,请联系成都创新互联

system("mspaint wzzx.jpg"); 就可以 在运行时显示这张图片。

用字符串变量调用也可以:

char pic_name[80]="wzzx.jpg";

char cmd[100];

sprintf(cmd,"mspaint %s",pic_name);

system(cmd); // 显示图片

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*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语言中如何显示图片?

如果要显示图片,关键是要了解这些存储格式的内容和含义,

用函数initgraphs(int

vmode)完成(也就是利用bios中的int

10中断来实现),

主要要把色表(color

map)按bmp格式添好,就ok了!有关图象格式的内容要查相关内容,

其中还要涉及显卡内部的寄存器有关知识。

所以比较复杂

怎样用C语言显示一张jpg的图片呢

可以用函数OleLoadPicture从包含有图像数据的流中装载图像。

具体实现代码如下:

//在显示图像之前,首先要获取到图像文件的存放路径,这里采用标准的文件打开对话框来选取图像文件,文件名存放在CString型的变量m_sPath中: 

CFileDialog dlg(TRUE,"jpg","*.jpg", 

OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, 

"JPEG文件(*.jpg)|*.jpg|GIF文件(*.gif)|*.gif||",NULL); 

if(dlg.DoModal()==IDOK) 

m_sPath=dlg.GetPathName(); 

Invalidate(); 

//为简单计,图形显示的代码直接在视类中的OnDraw中编写,首先打开文件并判断文件的可用性,并把文件内容放到流接口IStream的对象pStm中: 

IStream *pStm; 

CFileStatus fstatus; 

CFile file; 

LONG cb; 

…… 

if (file.Open(m_Path,CFile::modeRead)file.GetStatus(m_Path,fstatus) ((cb = fstatus.m_size) != -1)) 

HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb); 

LPVOID pvData = NULL; 

if (hGlobal != NULL) 

if ((pvData = GlobalLock(hGlobal)) != NULL) 

file.ReadHuge(pvData, cb); 

GlobalUnlock(hGlobal); 

CreateStreamOnHGlobal(hGlobal, TRUE, pStm); 

//然后,就直接调用OleLoadPicture函数从流中装载图像: 

IPicture *pPic; 

…… 

OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)pPic)); 

//由于该函数有时会导致失败,所以应当用SUCCEEDED宏来做一些适当的保护工作,只有在数据装载成功的前提下才能继续下面的图像显示工作: 

if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)pPic))) 

OLE_XSIZE_HIMETRIC hmWidth; 

OLE_YSIZE_HIMETRIC hmHeight; 

pPic->get_Width(hmWidth); 

pPic->get_Height(hmHeight); 

double fX,fY; 

…… 

fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0); 

fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0); 

if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL))) 

AfxMessageBox("渲染图像失败!"); 

pPic->Release(); 

else 

AfxMessageBox("从流中装载图像失败!"); 

//其中,显示工作主要是由IPicture接口对象的Render函数来完成的,该函数主要用来将图片的指定部分画到指定的设备环境的指定位置。

原型如下: 

HRESULT Render( HDC hdc, //渲染图像用的设备环境句柄 

long x, //在hdc上的水平坐标 

long y, //在hdc上的垂直坐标 

long cx, //图像宽度 

long cy, //图像高度 

OLE_XPOS_HIMETRIC xSrc, //在源图像上的水平偏移 

OLE_YPOS_HIMETRIC ySrc, //在源图像上的垂直偏移 

OLE_XSIZE_HIMETRIC cxSrc,//在源图像上水平拷贝的数量 

OLE_YSIZE_HIMETRIC cySrc,//在源图像上垂直拷贝的数量 

LPCRECT prcWBounds //指向目标图元设备环境句柄的指针);

c语言的图形函数库有哪些?

图形和图像函数包含在graphics.h里面

(一) 像素函数

56. putpiel() 画像素点函数

57. getpixel()返回像素色函数

(二) 直线和线型函数

58. line() 画线函数

59. lineto() 画线函数

60. linerel() 相对画线函数

61. setlinestyle() 设置线型函数

62. getlinesettings() 获取线型设置函数

63. setwritemode() 设置画线模式函数

(三)、多边形函数

64. rectangle() 画矩形函数

65. bar() 画条函数

66. bar3d() 画条块函数

67. drawpoly() 画多边形函数

(四)、 圆、弧和曲线函数

68. getaspectratio()获取纵横比函数

69. circle()画圆函数

70. arc() 画圆弧函数

71. ellipse()画椭圆弧函数

72. fillellipse() 画椭圆区函数

73. pieslice() 画扇区函数

74. sector() 画椭圆扇区函数

75. getarccoords()获取圆弧坐标函数

(五)、 填充函数

76. setfillstyle() 设置填充图样和颜色函数

77. setfillpattern() 设置用户图样函数

78. floodfill() 填充闭域函数

79. fillpoly() 填充多边形函数

80. getfillsettings() 获取填充设置函数

81. getfillpattern() 获取用户图样设置函数

(六)、图像函数

82. imagesize() 图像存储大小函数

83. getimage() 保存图像函数

84. putimage() 输出图像函数

四、图形和图像函数

对许多图形应用程序,直线和曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。

(一) 像素函数

56. putpixel() 画像素点函数

功能: 函数putpixel() 在图形模式下屏幕上画一个像素点。

用法: 函数调用方式为void putpixel(int x,int y,int color);

说明: 参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。

此函数相应的头文件是graphics.h

返回值: 无

例: 在屏幕上(6,8)处画一个红色像素点:

putpixel(6,8,RED);

57. getpixel()返回像素色函数

功能: 函数getpixel()返回像素点颜色值。

用法: 该函数调用方式为int getpixel(int x,int y);

说明: 参数x,y为像素点坐标。

函数的返回值可以不反映实际彩色值,这取决于调色板的设置情况(参见setpalette()函数)。

这个函数相应的头文件为graphics.h

返回值: 返回一个像素点色彩值。

例: 把屏幕上(8,6)点的像素颜色值赋给变量color。

color=getpixel(8,6);


当前文章:c语言图片显示函数,c语言输出图片的函数
网站链接:http://bzwzjz.com/article/heecpg.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 响应式网站设计 成都网站建设 成都网站建设公司 成都商城网站建设 成都网站建设 网站制作 成都网站设计 网站设计 攀枝花网站设计 高端网站设计 成都定制网站建设 成都网站设计 app网站建设 企业网站设计 成都网站建设 成都网站建设公司 成都网站制作 移动手机网站制作 教育网站设计方案 重庆外贸网站建设 成都网站建设 企业网站设计