改变图像颜色。

zxcdewq 2007-10-09 04:23:29
一个灰度图像,每个像素取值0~255,现在想把大于1的像素点都变成红色半透明。其他都变成全透明。
下面是我写的c#代码。可以实现,但效率很慢,640*480的图像要很长时间。有没有其他办法快一点?
c++的代码也行,谢谢!

for (int y = 0; y < InImage.Height; y++)
{
for (int x = 0; x < InImage.Width; x++)
{
Color color = InImage.GetPixel(x, y);

if (color.R > 1)
{
Color outColor = Color.FromArgb(255/2, 255, 0, 0);

tempImage.SetPixel(x, y, outColor);
}
else
{
Color outColor = Color.FromArgb(0, color.R, color.G, color.B);

tempImage.SetPixel(x, y, outColor);
}
}
}
...全文
155 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
seliber 2007-10-10
  • 打赏
  • 举报
回复
不懂.过来学学..

没有用过透明的画刷.学习一下
zxcdewq 2007-10-10
  • 打赏
  • 举报
回复
谢谢,这个问题解决了。

现在想创建一个画刷。画刷有两种模式,一种增加bmp全透明区域,另一种增加bmp红色半透明区域。
问题是如何实现直接修改bmp图片,或者先画到一个新图片上再和bmp合成一个图片?
BBirdlyh 2007-10-09
  • 打赏
  • 举报
回复
用GDI,直接操作数据

19,468

社区成员

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

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