Я пытаюсь отредактировать и сохранить изображение, используя класс .net Bitmap.Некоторые из пикселей являются прозрачными, и при определенных обстоятельствах они преобразуются в черный.Если я сохраню одно и то же изображение следующим образом:
image.Save("copy1.png", System.Drawing.Imaging.ImageFormat.Png);
image.Save("copy2.gif", System.Drawing.Imaging.ImageFormat.Gif);
image.Save("copy3.gif");
(изначально изображение было в формате gif), первое и третье правильно сохраняют прозрачность, но средний устанавливает все прозрачные пиксели чернымЯ не уверен, что я делаю неправильно, AFAIK последние две строки должны быть эквивалентны.
Вот пример программы, о которой я говорю:
using System.Drawing;
using System.Net;
namespace TestGif
{
class Program
{
static void Main(string[] args)
{
Bitmap bitmap = new Bitmap(WebRequest.Create(
"http://rlis.com/images/column/ie_icon.gif")
.GetResponse()
.GetResponseStream());
int width = bitmap.Width;
int height = bitmap.Height;
Bitmap copy = new Bitmap(width, height);
var graphics = Graphics.FromImage(copy);
graphics.DrawImage(bitmap, new Point(0, 0));
copy.Save("copy1.png", System.Drawing.Imaging.ImageFormat.Png);
copy.Save("copy2.gif", System.Drawing.Imaging.ImageFormat.Gif);
copy.Save("copy3.gif");
}
}
}