使用Graphics.DrawImage时,如何在Http Handler中保持图像的透明度?

时间:2008-10-27 17:40:33

标签: c# asp.net image gdi+ httphandler

我有一系列需要动态裁剪的GIF,我在C#中使用HTTP处理程序,因此我可以更好地封装代码 - 为结果提供缓存等。

目前,当我通过Image对象将现有图片绘制到新的Graphics时,所有透明度都会丢失。

我尝试了各种技术来尝试并保持透明度,但无济于事。

我尝试过的事情:

  • 使用MakeTransparent (Color)方法调用
  • ImageAttriutesColorMapSetColorKey
  • 组合使用

我真的不想开始使用不安全的运算符或Win32调用。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

当我使用透明度时,我总是使用Bitmap。即。

System.Drawing.Image SourceImage = System.Drawing.Image.FromFile("the.gif");
System.Drawing.Bitmap NewImage = new System.Drawing.Bitmap(SourceImage);
// Do Processing
NewImage.MakeTransparent();
// Store changes
NewImage.Save(..., System.Drawing.Imaging.ImageFormat.Png);

当然,如果你不能离开Graphics对象,那么这可能没什么用。