Как сохранить прозрачность изображения из обработчика Http при использовании Graphics.DrawImage? - PullRequest
1 голос
/ 27 октября 2008

У меня есть серия GIF-файлов, которые нужно обрезать на лету, я использую обработчик HTTP в C #, чтобы я мог лучше инкапсулировать код - обеспечить кеширование результата и т. Д.

В настоящее время, когда я рисую существующее изображение на новом Image через объект Graphics, вся прозрачность теряется.

Я пробовал различные методы, чтобы попытаться сохранить прозрачность, но безрезультатно.

Вещи, которые я пробовал:

  • Использование вызова метода MakeTransparent (Color)
  • Использование ImageAttriutes с комбинацией ColorMap и SetColorKey

Я действительно не хочу начинать использовать небезопасные операторы или звонки Win32.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 28 октября 2008
0 голосов
/ 27 октября 2008

Когда я использовал прозрачность, я всегда использовал Bitmap. * Т.е. 1002 *

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, тогда это может оказаться бесполезным.

...