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。
全部,
环境: .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。