如题,将小图像中心指定的圆形区域直接覆盖到大图像中,而圆形区域之外的其它图像与大图像渐变融合,看不出两幅图像的边界(或使边界模糊)希望高手们能理解我的意思,呵呵。多谢了哦……
解决方案 »
- 为什么我在我的工程中添加一个新类程序就会出现 LNK2001错误,实在不知道为什么!
- 用MFC生成应用程序,必须加对应MFC的dll才能运行吗?
- 关于对话框继承的问题
- 请高手来探讨
- 大家来讨论!
- VC里面如何搜索网络或系统的共享文件夹?
- 一个数据库比较基础的问题,表与表之间的关系到底有什么用?能告诉我吗?
- 哪位做过本地的全文搜索引擎啊,请提供个思路或源代码
- 非静态成员引用必须与特定对象相对的问题
- 需要mmx.h头文件
- 使用MCI播放mp3文件时,使用MCI的什么命令,可以实现MP3音乐的淡出效果(声音越来越小),请高手帮忙!
- 按钮的captions加上&D,这个按钮的快捷键就是“D”,但是界面中按钮上也有“&”字符,如何让按钮上不显示“&”,而是直接显示加下划线的字母。
我是这样想的,关键是如何对外边的RGB调比例?这是比较晕的问题,呵呵。
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);
上例中采用了嵌套循环来改变位图中每个象素的alpha值。对于每个象素,Bitmap::GetPixel获取其当前颜色,Color::SetValue创建一个包含新的alpha值得临时颜色值,然后Bitmap::SetPixel设置这个新的颜色。Alpha值的设定取决于位图的列。第一列的alpha值为0,最末一列的alpha值为255。因此结果图片看起来左边完全透明而右边完全不透明。
Bitmap::GetPixel和Bitmap::SetPixel使你可以控制单个象素的值。然而,使用这两个方法没有使用ImageAttributes类和颜色矩阵处理速度快。