Я не могу поверить, что этого еще не задавали, но ...Как удалить прозрачность из анимированного GIF?
Как заменить прозрачный фон изображения GIF на белый, не нарушая анимацию?
Я вышел из своего поля здесь, поэтому я почти потерялся (я действительно не знаю, что делать).
Это то, что я пытался без везения:
public byte[] RemoveTransparency(byte[] gifBytes)
{
using(MemoryStream gifStream = new MemoryStream(gifBytes))
using(Image gifImage = Image.FromStream(gifStream))
using(Image newImage = new Bitmap(gifImage.Width, gifImage.Height, PixelFormat.Format32bppPArgb))
using(MemoryStream newImageStream = new MemoryStream())
{
Color background = Color.White;
newImage.SetResolution(gifImage.HorizontalResolution, gifImage.VerticalResolution);
using (Graphics graphics = Graphics.FromImage(newImage))
{
graphics.Clear(background);
graphics.DrawImage(gifImage, 0, 0, gifImage.Width, gifImage.Height);
}
newImage.Save(newImageStream);
return newImageStream.ToArray();
}
}
Может быть, это может помочь вам: http://stackoverflow.com/questions/618259/remove-transparency-in-images-with-c-sharp –
@ErikAuranaune Это решение будет перерыв анимации моего GIF в –
Почему downvote? :( –