当前位置:  开发笔记 > 编程语言 > 正文

使具有特定颜色的图像的每个像素透明

如何解决《使具有特定颜色的图像的每个像素透明》经验,为你挑选了1个好方法。

我有一个System.Drawing.Image类型的对象,并希望使每个像素具有一些特定的颜色,例如黑色,透明(即,为此像素将alpha设置为0).

做这个的最好方式是什么?



1> Phil Wright..:

一种好的方法是使用ImageAttributes类设置要在绘制时重新映射的颜色列表.这样做的好处是良好的性能,并允许您非常容易地改变重映射颜色.尝试类似这样的代码......

ImageAttributes attribs = new ImageAttributes();
List colorMaps = new List();
//
// Remap black top be transparent
ColorMap remap = new ColorMap();
remap.OldColor = Color.Black;
remap.NewColor = Color.Transparent;
colorMaps.Add(remap);
//
// ...add additional remapping entries here...
//
attribs.SetRemapTable(colorMaps.ToArray(), ColorAdjustType.Bitmap);
context.Graphics.DrawImage(image, imageRect, 0, 0, 
                           imageRect.Width, imageRect.Height, 
                           GraphicsUnit.Pixel, attribs);

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有