Как мне сохранить прозрачность изображения из Http-обработчика при использовании графики.drawImage?

StackOverflow https://stackoverflow.com/questions/240777

Вопрос

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

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

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

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

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

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

Есть какие-нибудь идеи?

Это было полезно?

Решение

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top