VB.Net GIF 透明度






3.28/5 (10投票s)
2006年8月8日
1分钟阅读

66388

1487
一种从源 GIF 图像创建透明 GIF 图像的方法。
引言
我曾在网上(通过 Google)搜索过将 GIF 图像转换为透明 GIF 图像的示例,但没有取得太大成功。我想要的东西就在那里,但不是我想要的方式。
我看到的一些将非透明 GIF 转换为透明 GIF 的方法使用了不安全的代码来执行转换。幸运的是,我偶然发现了一些在没有不安全代码的情况下执行转换的示例,并且我遇到了 Bob Powell 的透明度页面,结果找到了我想要的东西。虽然我想要的东西就在那里,但它与 UI 代码混合在一起,没有以我能理解的方式组织起来。所以我采用了 Bob 的代码,将执行转换的代码移动到它自己的类中,添加了一些额外的注释,重新格式化了代码,并更改了一些变量名。
使用代码
GifConverter 类包含一个公共共享方法,即 GetTransparentGif。该类接受两个参数:Image (Bitmap) 和 TransparentColor (Color)。Image 参数是要转换的图像。原始图像不会被修改,而是“复制”到该方法返回的新图像中。TransparentColor 参数是调色板中将设置为透明颜色的颜色。目前,该方法中没有检查来验证源图像是否为 GIF 图像。
关注点
为了执行复制,该库没有使用不安全的代码,而是使用 System.Runtime.Marshal 类来逐位读取/写入,从而有效地将源位图的数据复制到目标位图。我从 Bob Powell 的原始代码中重写成一个可用的库中学到了很多。
历史
v1.0 初始版本