Как мне сохранить прозрачность изображения из Http-обработчика при использовании графики.drawImage?
-
04-07-2019 - |
Вопрос
У меня есть серия GIF-файлов, которые мне нужно обрезать на лету, я использую HTTP-обработчик на C #, чтобы лучше инкапсулировать код - обеспечить кэширование результата и т.д.
В настоящее время, когда я рисую существующее изображение на новом Image
через Graphics
объект теряет всю прозрачность.
Я пробовал различные методы, чтобы попытаться сохранить прозрачность, но безрезультатно.
Вещи, которые я пробовал:
- Используя
MakeTransparent (Color)
вызов метода - Используя
ImageAttriutes
с помощью комбинацииColorMap
иSetColorKey
Я действительно не хочу начинать использовать небезопасные операторы или вызовы Win32.
Есть какие-нибудь идеи?
Решение
Кажется, на этот вопрос уже был дан ответ Как нарисовать прозрачное изображение с помощью System.Рисование?
Другие советы
Когда я использовал прозрачность, я всегда использовал 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
возражайте тогда, что от этого может быть мало пользы.