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 и выяснить, почему это ожидаемое поведение. Но не отчаивайтесь и не расстраивайтесь, если единственным ответом является "Это нормально" или "Просто игнорируйте это".

Другие вопросы по тегам