VC6中GDI+半透明显示图片,利用Bitmap::SetPixel来设置每个像素的颜色和透明度。需要先建立一个透明的位图,然后在导入这个位图操作吗?

xiaowaiwaia 2012-06-06 09:13:56
问题是:现在已知每个像素的ARGB值,需要半透明显示这个像素矩阵。我本来的思路是利用这个矩阵一个点一个点绘制,可是GDI+中貌似没有一个像素一个像素绘制的函数,必须在Bitmap中SetPixel,然后再绘制这个bitmap。那按照这个思路是否需要建立一个完全透明的位图然后在这个位图基础上SetPixel??请教大牛!还有不用GDI+的话半透明显示这个RGB矩阵有方便的方法吗?
...全文
459 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowaiwaia 2012-06-07
  • 打赏
  • 举报
回复
MSDN这段代码看到了 能给些自己的建议吗?谢谢
erqieshi 2012-06-07
  • 打赏
  • 举报
回复
度娘
colorMatrix
  • 打赏
  • 举报
回复
INT iWidth = bitmap.GetWidth();
INT iHeight = bitmap.GetHeight();
Color color, colorTemp;
for(INT iRow = 0; iRow < iHeight; iRow++)
{
for(INT iColumn = 0; iColumn < iWidth; iColumn++)
{
bitmap.GetPixel(iColumn, iRow, &color);
colorTemp.SetValue(color.MakeARGB(
(BYTE)(255 * iColumn / iWidth),
color.GetRed(),
color.GetGreen(),
color.GetBlue()));
bitmap.SetPixel(iColumn, iRow, colorTemp);
}
}
// First draw a wide black line.
Pen pen(Color(255, 0, 0, 0), 25);
graphics.DrawLine(&pen, 10, 35, 200, 35);
// Now draw the modified bitmap.
graphics.DrawImage(&bitmap, 30, 0, iWidth, iHeight);
xiaowaiwaia 2012-06-06
  • 打赏
  • 举报
回复
有大牛路过给个思路吧~~~~

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧