当前位置:  开发笔记 > 编程语言 > 正文

生成低位深度的图像文件?

如何解决《生成低位深度的图像文件?》经验,为你挑选了1个好方法。

bpp =每像素位数,因此对于R/G/B/A,32bpp表示8/8/8/8.

像.NET有这些"System.Drawing.Imaging.PixelFormat"的枚举.

现在,一旦我的图形具有BitmapImage对象,我将如何将其保存为文件/我将使用哪种格式?

什么图像文件格式(JPEG/GIF/PNG)支持低位深度,如16bpp或8bpp (而不是通常的32bpp或24bpp)



1> Rick Mineric..:

我不认为对方的回答测试了他们的代码,因为GDI + PNG不支持Encoder.BitDepth EncoderParameter.事实上,唯一的Codec就是TIFF.

您需要在保存之前更改图像的PixelFormat,以便对输出产生任何影响.这并不总能产生您期望的PixelFormat.有关哪些PixelFormats变成什么的更多信息,请参阅我的帖子.

对于PixelFormat转换,以下内容将起作用:

private Bitmap ChangePixelFormat(Bitmap inputImage, PixelFormat newFormat)
{
  Bitmap bmp = new Bitmap(inputImage.Width, inputImage.Height, newFormat);
  using (Graphics g = Graphics.FromImage(bmp))
  {
    g.DrawImage(inputImage, 0, 0);
  }
  return bmp;
}

不幸的是,这些转换会产生一些非常糟糕的输出.在执行有损转换(高位深度到较低位)的情况下尤其如此.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有