1
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);

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

任何人都可以帮助我。

4

2 回答 2

1

尝试这个:

//parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 256);
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 8);
于 2013-09-23T09:22:37.280 回答
0
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);

这行得通吗?

于 2019-10-05T00:27:01.113 回答