Я разрабатываю приложение базы данных документов, которое обрабатывает изображения TIFF. При аннотировании изображений для того, чтобы пользовательский интерфейс отображал только черно-белое изображение в качестве вариантов для битовых (Format1bppIndexed) изображений по сравнению с несколькими цветами для изображений с более высокой глубиной цвета, мне нужно проверить, является ли TIFF битональным. Вот моя функция:
private bool IsBitonal(string filePath)
{
bool isBitonal = false;
try
{
Bitmap bitmap = new Bitmap(sourceFilePath);
Graphics graphics = Graphics.FromImage(bitmap);
}
catch (Exception ex)
{
isBitonal = true;
}
return isBitonal;
}
Это работает, но это не изящно. Возникающее исключение формата индексированного пикселя описано здесь: http://msdn.microsoft.com/en-us/library/system.drawing.graphics.fromimage.aspx.
Захват исключения для нормального выполнения программы - плохая практика. Также возможно, что может быть выдано другое исключение. Есть ли лучший способ реализовать функцию IsBitonal, которая не полагается на перехват исключения?
Я попытался найти информацию в Интернете и нашел примеры того, как загрузить изображение TIFF и избежать исключения путем преобразования в другой формат, но я не смог найти примеров простого теста на наличие изображения TIFF или нет. является битональным
Спасибо.