【发布时间】:2011-01-11 03:11:41
【问题描述】:
我正在开发一个处理 TIFF 图像的文档数据库应用程序。在注释图像时,为了让用户界面仅显示黑白作为双色调(Format1bppIndexed)图像的选择,而不是具有更高颜色深度的图像的多种颜色,我需要测试 TIFF 是否是双色调的。这是我的功能:
private bool IsBitonal(string filePath)
{
布尔 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 图像的示例是双色的。
谢谢。
【问题讨论】: