CSharp - 在 C# 中,如何将jpeg图像的颜色深度降低到 256色?

  显示原文与译文双语对照的内容
74 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);

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

任何一个能帮助我。

时间: 原作者:

78 3

我使用 IrfanView ( https://en.wikipedia.org/wiki/IrfanView ) 。 它有一个很好的范围,它可以对许多类型的图像进行处理。 下面的代码将PNG图像转换为两种颜色:


 foreach (string imgOrg in Directory.GetFiles(folder))
 {
 FileInfo fi = new FileInfo(imgOrg);

 if (fi.Length> targetSize)
 {
 ProcessStartInfo startInfo = new ProcessStartInfo();
 startInfo.FileName =""C:Program Files (x86)IrfanViewi_view32.exe"";
 startInfo.Arguments = imgOrg +"/bpp=1/convert=" + folder +"TwoTone_" + fi.Name;
 Process.Start(startInfo);
 }
 }

...