ImageMagick 将 .tif 文件转换为 .pdf - 导致 MagickCoderErrorException

ImageMagick Converting .tif file to .pdf - Causes MagickCoderErrorException

全部,

环境: .net 2.0,Magick.NET 库的 x64 版本

我有以下代码,我在其中读取 .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 生成但我不想简单地忽略异常如果我做错了。

似乎抛出错误异常是因为未正确处理警告异常。

您的应用程序应该排除警告异常,因为这是处理专有、不合规或奇怪图像时的常见消息。

 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);

Why?

我强烈建议跳转到 ImageMagick's forums,并找出为什么这是预期的行为。但是,如果唯一的响应是 "That's fine""Just ignore that",请不要推迟或气馁。

全部,

此问题已通过让作者在 Magic.net 库中添加对忽略标签的支持得到解决,请检查版本 Magick.NET 7.0.0.0018。