如何获得位图的尺寸? 也就是说获得它宽和高! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL GetBitmapDimensionEx( HBITMAP hBitmap, // handle to bitmap LPSIZE lpDimension // address of structure receiving dimensions); typedef struct tagBITMAPINFOHEADER{ DWORD biSize; // 本结构所占用字节数 LONGbiWidth; // 位图的宽度,以像素为单位 LONGbiHeight; // 位图的高度,以像素为单位 WORD biPlanes; // 目标设备的级别,必须为1 WORD biBitCount// 每个像素所需的位数,必须是1(双色), // 4(16色),8(256色)或24(真彩色)之一 DWORD biCompression; // 位图压缩类型,必须是 0(不压缩), // 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一 DWORD biSizeImage; // 位图的大小,以字节为单位 LONGbiXPelsPerMeter; // 位图水平分辨率,每米像素数 LONGbiYPelsPerMeter; // 位图垂直分辨率,每米像素数 DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数 DWORD biClrImportant;// 位图显示过程中重要的颜色数} BITMAPINFOHEADER; SIZE size;GetBitmapDimensionEx(hBmp, &size);然后size.cx就是宽度,size.cy就是高度了 GetBitmapDimensionEx的用法,第一个是bitmap的句柄(用LoadBitmap得到),第二个是一个SIZE结构的指针,用来返回大小。而BITMAPINFOHEADER是直接读bitmap文件(用CFile::Read就可以了)得到的。 BITMAPFILEHEADER bmpfileheader;BITMAPINFOHEADER bmpinfoheader;fstream bmpfile; bmpfile.open(filename, ios::in|ios::out|ios::binary);if(!bmpfile){ return -1;}else { bmpfile.read((char *)&bmpfileheader, sizeof(bmpfileheader)); if(bmpfileheader.bfType!=0x4D42) return -1; bmpfile.read((char *)&bmpinfoheader, sizeof(bmpinfoheader)); ...}这样就得到这个结构了。 BITMAP bitmap;mybitmap.getobject(sizeof(BITMAP),&bitmap);//mybitmap已经连接了位图bitmap.bmheight;bitmap.bmweight;最简单 CBitmap nBitmap;bBitmap.LoadBitmap(/* 位图*/);BITMAP bitmap;nBitmap.GetBitmap(bitmap); 不好意思,应该是:CBitmap nBitmap;bBitmap.LoadBitmap(/* 位图*/);BITMAP bitmap;nBitmap.GetBitmap(&bitmap);bitmap.bmheight;// 高bitmap.bmweight;//宽 真心求如何在VS(注意不是VC)里使用类向导啊,求真心耐心的你 在VC6下链接一个lib 没有问题 在VC2008下就出现error LNK2019: 无法解析的外部符号 TCP/IP连接中断 进程的内存、cpu使用率问题 一个十分简单的问题!!!!快来抢分!!! ? BASE64编码解码的程序,不要对文件的,要对CStrng的,谢了 ?? 界面 请教怎么才能上到水木清华的BBS上去呀? 多线程菜鸟问题!! 小问题请教高手 如何读取控制台界面中的内容?
HBITMAP hBitmap, // handle to bitmap
LPSIZE lpDimension // address of structure receiving dimensions
);
DWORD biSize; // 本结构所占用字节数
LONGbiWidth; // 位图的宽度,以像素为单位
LONGbiHeight; // 位图的高度,以像素为单位
WORD biPlanes; // 目标设备的级别,必须为1
WORD biBitCount// 每个像素所需的位数,必须是1(双色),
// 4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; // 位图压缩类型,必须是 0(不压缩),
// 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
DWORD biSizeImage; // 位图的大小,以字节为单位
LONGbiXPelsPerMeter; // 位图水平分辨率,每米像素数
LONGbiYPelsPerMeter; // 位图垂直分辨率,每米像素数
DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数
DWORD biClrImportant;// 位图显示过程中重要的颜色数
} BITMAPINFOHEADER;
GetBitmapDimensionEx(hBmp, &size);
然后size.cx就是宽度,size.cy就是高度了
BITMAPINFOHEADER bmpinfoheader;
fstream bmpfile; bmpfile.open(filename, ios::in|ios::out|ios::binary);
if(!bmpfile)
{
return -1;
}
else
{
bmpfile.read((char *)&bmpfileheader, sizeof(bmpfileheader));
if(bmpfileheader.bfType!=0x4D42)
return -1;
bmpfile.read((char *)&bmpinfoheader, sizeof(bmpinfoheader));
...
}这样就得到这个结构了。
mybitmap.getobject(sizeof(BITMAP),&bitmap);//mybitmap已经连接了位图
bitmap.bmheight;
bitmap.bmweight;
最简单
bBitmap.LoadBitmap(/* 位图*/);
BITMAP bitmap;
nBitmap.GetBitmap(bitmap);
bBitmap.LoadBitmap(/* 位图*/);
BITMAP bitmap;
nBitmap.GetBitmap(&bitmap);
bitmap.bmheight;// 高
bitmap.bmweight;//宽