ImageMagick Преобразование файла.tif в.pdf - вызывает MagickCoderErrorException
Все,
Конверт: .net 2.0, x64 сборка библиотеки Magick.NET
У меня есть следующий код, где я читаю файл.tif и хочу преобразовать его в.pdf.
using (MagickImage image = new MagickImage())
{
image.SetDefine(MagickFormat.Tiff, "ignore-tags", "32934");
image.Read(sourceFilePath);;
image.Write(targetFilePath);
}
image.Read () выбрасывает MagickCoderErrorException, а внутреннее исключение - MagickCoderWarningException, которое жалуется на:
ImageMagick.vshost.exe: Обнаружено неизвестное поле с тегом 32934 (0x80a6). `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/880
Вы можете ясно видеть в моем коде, что я дал указание библиотеке игнорировать этот тег, и все же я получаю это исключение. Зачем? Кстати, когда я улавливаю исключение, ничего не делаю и вызываю image.Write(my.pdf), я генерирую PDF, но я не хочу просто игнорировать исключения, если я что-то делаю не так.
2 ответа
Все,
Эта проблема была исправлена тем, что автор добавил поддержку игнорирования тегов в библиотеке Magic.net, проверьте выпуск Magick.NET 7.0.0.0018.
Похоже, что исключение ошибки было сгенерировано, потому что исключение предупреждения было обработано неправильно.
Ваше приложение должно исключать предупреждения, так как это обычное сообщение при работе с проприетарными, несовместимыми или просто нечетными изображениями.
try {
image.Read(sourceFilePath);
} catch (MagickCoderWarningException err) {
// Evaluate if this exception will introduce undesired behavior
// If yes... re-throw
throw new Exception('This is undesired', err);
}
image.Write(targetFilePath);
Зачем?
Я настоятельно рекомендую перейти на форумы ImageMagick и выяснить, почему это ожидаемое поведение. Но не отчаивайтесь и не расстраивайтесь, если единственным ответом является "Это нормально" или "Просто игнорируйте это".