我正在开发一个处理 TIFF 图像的文档数据库应用程序。在注释图像时,为了让用户界面仅显示黑白作为双色调(Format1bppIndexed)图像的选择,而不是具有更高颜色深度的图像的多种颜色,我需要测试 TIFF 是否是双色调的。这是我的功能:
私有布尔 IsBitonal(字符串文件路径) { 布尔 isBitonal = false; 尝试 { 位图 bitmap = new Bitmap(sourceFilePath); 图形图形 = Graphics.FromImage(bitmap); } 捕捉(例外前) { isBitonal =真; } 返回是黑白的; }
它有效,但并不优雅。此处描述了引发的索引像素格式异常:http: //msdn.microsoft.com/en-us/library/system.drawing.graphics.fromimage.aspx。
为正常程序流捕获异常是不好的做法。此外,可以想象可能会引发不同的异常。有没有更好的方法来实现不依赖于捕获异常的 IsBitonal 函数?
我尝试在网上搜索信息,并找到了如何加载 TIFF 图像并通过转换为不同格式来避免异常的示例,但我找不到任何简单测试 TIFF 图像是否为双色调的示例。
谢谢。