首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言的库函数中有打开以有图片的函数么?解决方法

2012-02-05 
C语言的库函数中有打开以有图片的函数么??~在C语言中有打开图片,保存图片的函数么?麻烦告诉小弟我下3Q[解

C语言的库函数中有打开以有图片的函数么??~
在C语言中有   打开图片,保存图片的函数么?   麻烦告诉小弟我下3Q

[解决办法]
是的,图像文件反正也是文件 直接打开就好了

楼主可以去看下bmp格式 以前在linux下写过,差不多的,楼主可以借鉴一下

bool CBitmap::LoadBitMap(const char *lpszFileName, unsigned long ulTransColor, bool bTransparent, int x, int y)
{
FILE *fp = fopen(lpszFileName, "r+b ");
if (!fp)
{
return false;
}

BITMAPFILEHEADER bmpheader;
BITMAPINFOHEADER bmpInfo;
int i, j, offset;
unsigned short biBitCount;
unsigned long color = 0;

fread(&bmpheader, sizeof(BITMAPFILEHEADER), 1, fp);
fread(&bmpInfo, sizeof(BITMAPINFOHEADER), 1, fp);
fseek(fp, bmpheader.bfOffBits, SEEK_SET);
biBitCount = bmpInfo.biBitCount;
//每读一行结束后,偏移与4字节对齐时,0的个数
offset = (4 - (bmpInfo.biWidth*biBitCount/8) % 4)%4;

//读取位图数据段数据
for ( j = bmpInfo.biHeight - 1; j > = 0; j--)
{
for (i = 0; i < bmpInfo.biWidth; i++)
{
fread(&color, biBitCount/8, 1, fp);
if ( bTransparent && (color != ulTransColor) )
{
//TRACE( "the color is %d\t\n ", color);
dc.SetPixel(i + x, j + y, color);
}
else if (!bTransparent)
{
dc.SetPixel(i + x, j + y, color);
}

}
fseek(fp, ftell(fp) + offset, SEEK_SET);
}

fclose(fp);

return true;
}

热点排行