繁体   English   中英

将灰度图像另存为彩色JPEG

[英]save greyscale image as color JPEG

我正在应用程序中处理许多不同的图像格式。 幸运的是,我能够将处理图像格式的最大一部分外包给C#WPF。 但是,保存图像时出现问题:

我想使用带有RGB配置文件的JpegBitmapEncoder将图像保存为JPEG。 这对于彩色图像格式都适用。 但是,当处理图像时,即格式为Gray16或Gray8,则生成的JPEG将具有灰度配置文件。 我的确确实需要JPEG的RGB配置文件!

我知道我可以在Bgra32中创建一个新的WriteableBitmap,将数据复制到其中,然后使用它来创建JPEG。 但是,这意味着我需要自己处理不同的图像格式。 最重要的是,我认为这种绕行方式在计算上会非常低效(我需要转换大量图像数据!)。

另外,我不能使用C#/ WPF之外的任何解决方案(例如Imagemagick)。

我希望有一种方法可以轻松有效地解决这一问题。 我找不到为此配置JpegBitmapEncoder的方法,尝试了ColorConvertedBitmap,但无济于事!

有任何想法吗?

FormatConvertedBitmap的提示给我解决了我的问题! 谢谢RononDex!

FormatConvertedBitmap convertImg = new FormatConvertedBitmap(img, PixelFormats.Bgra32, null, 0);
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(convertImg));
encoder.Save(stream);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM