Работа с изображениями - преобразование прозрачных пикселей перед сохранением в формате jpg - PullRequest
0 голосов
/ 24 февраля 2012

Я сохраняю изображение с прозрачным фоном в формате JPEG.Есть ли способ преобразовать прозрачные пиксели в определенный цвет без итерации по всем пикселям?

Это код, который я использую (также - обычная ли первая строка для этого?разные кодеры?)

public void SaveImage(Bitmap image, string path)
{
    var encoder = ImageCodecInfo.GetImageEncoders().FirstOrDefault(c => c.MimeType == "image/jpeg");
    var encodeParams = new EncoderParameters(1);
    encodeParams.Param[0] = new EncoderParameter(Encoder.Quality, (long)100);

    image.Save(path, encoder, encodeParams);
}

Ответы [ 2 ]

1 голос
/ 24 февраля 2012
image.MakeTransparent(image.GetPixel(0, 0));

Но это можно сохранить как png, потому что, к сожалению, jpg не поддерживает прозрачность

0 голосов
/ 26 февраля 2012

Обычным решением является создание растрового изображения с желаемым цветом фона, рендеринг вашего изображения и сохранение / преобразование этого растрового изображения в виде изображения.

Проверьте Graphics.FromImage . Это даст вам объект отрисовки графики для растрового изображения.

...