CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
怎么知道这个位图里某个点的颜色? (例如第一行第一列的颜色)
如何修改这个颜色?
7 个解决方案
#1
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
CWindowDC dcDesktop(NULL);
CDC dcTmp;
dcTmp.CreateCompatibleDC(&dcDesktop);
CBitmap* pOldBmp = dcTmp.SelectObject(&bmp);
COLORREF cr = dcTmp.GetPixel(x, y);
#2
基本思想就是 加载位图, 创建兼容DC,将位图选入兼容DC, 获取像素点颜色
楼上正解
楼上正解
#3
好,这是读取象素值的方法,并且很巧妙。
有没有修改颜色的方法? 是修改CBitmap里面的,不是屏幕上的。 因为我最终要使用StretchBlt来显示图片。
我也不要求随意改,只要使用几种常用的颜色。
#4
GetPixel(x, y)
#5
SetPixel可以修改像素,你可以把内存DC里的像素改了在blt过去
#6
好,感谢大家,可行了。
就是 SetPixel 的速度慢了点。
#7
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
#1
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
CWindowDC dcDesktop(NULL);
CDC dcTmp;
dcTmp.CreateCompatibleDC(&dcDesktop);
CBitmap* pOldBmp = dcTmp.SelectObject(&bmp);
COLORREF cr = dcTmp.GetPixel(x, y);
#2
基本思想就是 加载位图, 创建兼容DC,将位图选入兼容DC, 获取像素点颜色
楼上正解
楼上正解
#3
好,这是读取象素值的方法,并且很巧妙。
有没有修改颜色的方法? 是修改CBitmap里面的,不是屏幕上的。 因为我最终要使用StretchBlt来显示图片。
我也不要求随意改,只要使用几种常用的颜色。
#4
GetPixel(x, y)
#5
SetPixel可以修改像素,你可以把内存DC里的像素改了在blt过去
#6
好,感谢大家,可行了。
就是 SetPixel 的速度慢了点。
#7
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法