как сохранить Image.Save как 24-битное изображение?

Как мне заставить С# принудительно сохранять растровые изображения, которые сохраняются как 24-битные изображения, как это видно, когда вы получаете свойства изображения, щелкнув правой кнопкой мыши в Windows. Все изображения, которые я сохраняю, настроены на 32-бит. Я попробовал приведенный ниже код без везения. Все исходные изображения также являются 24-битными, но всегда сохраняются как 32-битные изображения.

ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp);
EncoderParameters parameters = new EncoderParameters();
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 24);
imgCheque.Save(DestinationFile.ToString(), bmpCodec, parameters);

Изображения должны быть правильно 24-битными, так как они считываются другой программой, которая не может обрабатывать 32-битные изображения.

Заранее спасибо,

Соултек


person Soultech    schedule 09.11.2009    source источник
comment
Я думаю, что в опубликованном коде что-то не так... перепроверьте bmpCode и jpegCodec   -  person R. Martinho Fernandes    schedule 09.11.2009
comment
да, извините, это растровые изображения, которые я пытаюсь создать. Я изменил это сейчас. спасибо   -  person Soultech    schedule 09.11.2009


Ответы (2)


Это какая-то польза?

// imgCheque source created somewhere else up here
using (Bitmap blankImage = new Bitmap(imgCheque.Width, imgCheque.Height, PixelFormat.Format24bppRgb))
{
    using (Graphics g = Graphics.FromImage(blankImage))
    {
        g.DrawImageUnscaledAndClipped(imgCheque, new Rectangle(Point.Empty, imgCheque.Size));
    }

    ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp);
    blankImage.Save(@"C:\TEMP\output.bmp", bmpCodec, null);
}
person pmcilreavy    schedule 11.11.2009

Попробуй это?

ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp);
EncoderParameters parameters = new EncoderParameters();
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 24L);
imgCheque.Save(DestinationFile.ToString(), bmpCodec, parameters);
person Marcus    schedule 05.10.2019