既然用了GDI+就好办。
1VOID Example_GetPixel(HDC hdc)
{
Graphics graphics(hdc);
// Create a Bitmap object from a file
Bitmap myBitmap(L"Climberbmp");
// Get the value of a pixel from myBitmap
Color pixelColor;
myBitmapGetPixel(25, 25, &pixelColor);
int blue = pixelColorGetBlue();
}
2处理位图,三步走,先Bitmap::LockBits (),在改像素,再UnlockBits。
给个例子:
VOID Example_LockBits2(HDC hdc)
{
Graphics graphics(hdc);
UINT pixels;
// 从文件创建位图
Bitmap bitmap(L"LockBitsTest2bmp");
// 显示位图
graphicsDrawImage(&bitmap, 10, 10);
// 锁定位图中一块50x30的区域
BitmapData bitmapData;
Rect rect(20, 10, 50, 30);
bitmapLockBits(
&rect,
ImageLockModeWrite,
PixelFormat32bppARGB,
&bitmapData);
// 写入有LOckbits提供的缓冲区
pixels = (UINT)bitmapDataScan0;
for(UINT row = 0; row < 30; ++row)
{
for(UINT col = 0; col < 50; ++col)
{
pixels[row bitmapDataStride / 4 + col] = 0xff00ff00;
}
}
// 提交更改,解锁位图
bitmapUnlockBits(&bitmapData);
//显示修改后的位图
graphicsDrawImage(&bitmap, 150, 10);
}
你要在控件显示,就先获取控件的hdc,这个不要我说了吧。
int x=GetSystemMetrics(SM_CXSCREEN);得到x坐标
int y=GetSystemMetrics(SM_CYSCREEN);得到y坐标
(x/2 y/2) 就是 屏幕中心的坐标
此方法就是得到屏幕的分辨率。右下角的 坐标 就是 当前分辨率的值。
以上就是关于VC++6.0中,MFC的对话框工程,关于bmp位图加载与读取的菜鸟问题全部的内容,包括:VC++6.0中,MFC的对话框工程,关于bmp位图加载与读取的菜鸟问题、VC++(MFC)怎样获得输出屏幕的右下角和中心的坐标、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)