如何在 c# 中将 jpeg 图像的颜色深度减少到 256 种颜色

本文关键字:颜色 色深度 中将 图像 jpeg | 更新日期: 2023-09-27 18:32:20

MemoryStream msSave = new MemoryStream();
ImageCodecInfo pngCodec = ImageCodecInfo
    .GetImageEncoders()
    .Where(codec => codec.FormatID.Equals(ImageFormat.Png.Guid))
    .FirstOrDefault();
if (pngCodec != null)
{
    EncoderParameters parameters = new EncoderParameters();
    parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 256);
    img.Save(msSave, pngCodec, parameters);
}
img.Save(msSave, imageFormat);

我尝试了这段代码,但没有给我正确的结果?

谁能帮我。

如何在 c# 中将 jpeg 图像的颜色深度减少到 256 种颜色

试试这个:

//parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 256);
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 8);
MemoryStream msSave = new MemoryStream();
ImageCodecInfo pngCodec = ImageCodecInfo
    .GetImageEncoders()
    .Where(codec => codec.FormatID.Equals(ImageFormat.Png.Guid))
    .FirstOrDefault();
if (pngCodec != null)
{
    EncoderParameters parameters = new EncoderParameters();
    parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 256L);
    img.Save(msSave, pngCodec, parameters);
}
img.Save(msSave, imageFormat);

这行得通吗?