VC++6.0中,MFC的对话框工程,关于bmp位图加载与读取的菜鸟问题

VC++6.0中,MFC的对话框工程,关于bmp位图加载与读取的菜鸟问题,第1张

既然用了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)怎样获得输出屏幕的右下角和中心的坐标、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9569519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存