vini
vini

Reputation: 4742

How to decrease the color depth of jpeg image to 256 colors in c#?

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

I tried out this code but not giving me the correct result?

Could any one help me out.

Upvotes: 1

Views: 1583

Answers (2)

Marcus
Marcus

Reputation: 31

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

Does this work?

Upvotes: 0

Leo Chapiro
Leo Chapiro

Reputation: 13984

Try this:

//parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 256);
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 8);

Upvotes: 1

Related Questions