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

时间:2015-08-19 22:01:03

标签: .net imagemagick imagemagick-convert magick.net imagemagick.net

所有

ENV: .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 个答案:

答案 0 :(得分:0)

看起来引发了错误异常,因为警告异常未被正确处理。

您的应用程序应该除了警告例外,因为这是使用专有,不兼容或奇怪图像时的常见消息。

 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's forums,并发现为什么这是预期的行为。但是,如果唯一的回答是"那很好" ,或"请不要忽视或劝阻该"

答案 1 :(得分:0)

所有

通过让作者在Magic.net库中添加忽略标记的支持来修复此问题,请查看版本Magick.NET 7.0.0.0018。