2008-10-27 122 views
1

我有一系列GIF,我需要在飞行中裁剪,我在C#中使用HTTP处理程序,所以我可以更好地封装代码 - 为结果提供缓存等。使用Graphics.DrawImage时,如何在Http Handler的图像中保持透明度?

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

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

事情我已经尝试:

  • 使用MakeTransparent (Color)方法调用
  • ColorMap组合和SetColorKey

使用ImageAttriutes我真的不希望开始使用不安全运营商或Win32调用。

任何想法?

+0

题外话COMENT回答 - 很高兴看到另一个南安普敦开发! :) – 2008-10-27 18:55:04

回答

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对象则可能不是多大用处了。