任何PixelFormat都可以与任何ImageFormat一起使用吗?

时间:2012-03-26 04:18:51

标签: .net system.drawing

任何PixelFormat都可以与任何ImageFormat一起使用吗?

我正在使用System.Drawing.Bitmap进行一些图像处理。当我创建Bitmap时,我被要求使用PixelFormat;当我保存位图时,我被要求提供一个ImageFormat。这里有无效的组合吗?


为了帮助回答,这里是PixelFormats和ImageFormats的列表:

PixelFormats(MSDN - System.Drawing.PixelFormat):

Gdi*
Alpha*
PAlpha*
Extended*
Canonical*
Undefined*
DontCare*
Max*
Format1bppIndexed
Format4bppIndexed
Format8bppIndexed
Format16bppGrayScale**
Format16bppRgb555
Format16bppRgb565
Format16bppArgb1555
Format24bppRgb
Format32bppRgb
Format32bppArgb
Format32bppPArgb
Format48bppRgb
Format64bppArgb
Format64bppPArgb

* - 传递给新的Bitmap()时导致ArgumentException ** - 不适用于任何ImageFormat

ImageFormats(MSDN - System.Drawing.ImageFormat):

Bmp
Emf
Exif
Gif
Icon
Jpeg
MemoryBmp
Png
Tiff
Wmf

编辑1 : 使用PixelFormats更新了PixelFormat列表,在创建位图时会导致异常。

编辑2 : 通过我自己的一些测试,似乎PixelFormat“ Format16bppGrayScale ”与所有ImageFormats不兼容。仍在寻找其他不兼容性......

编辑3 : 在我看来,对于支持透明度的ImageFormats使用“Format32bppArgb”,对于不能很好地运行的格式使用“Format24bppRgb”。

0 个答案:

没有答案