我收到此错误:
ImageMagick.MagickResourceLimitErrorException: 'TooManyExceptions (exception processing is suspended) @ error/exception.c/ThrowException/969'
在这条线上
using (MagickImageCollection tiffPageCollection = new MagickImageCollection())
{
tiffPageCollection.Read(tifName); // fails here.
}
出现这个问题是因为92页的tif每页都有这样的三个错误:
{"ASCII value for tag \"Copyright\" does not end in null byte. `TIFFFetchNormalTag' @ warning/tiff.c/TIFFWarnings/1007"} ImageMagick.MagickException {ImageMagick.MagickCoderWarningException}
超出警告错误的数量,从而触发 TooManyExceptions 错误。
这个 URL 暗示了一个解决方案:
http://www.imagemagick.org/discourse-server/viewtopic.php?t=33989
添加此处理程序:
private void MagickNET_Log (object sender, LogEventArgs e)
{
// write to a single log file...
if ((RemoteImageMagickEventLogging & e.EventType) != LogEvents.None)
{
switch (e.EventType)
{
case LogEvents.Exception:
if (!e.Message.Contains ("TIFFWarnings"))
{
TriggerRemoteLoggingEvent (e.EventType,
EZLogger.LoggingLevel.Note1, e.Message);
}
break;
}
}
}
它还提到此异常已添加到“ImageMagick.Net 7.4.5 Q8 AnyCPU”中,并且在早期版本中没有发生。我在更新到 v7.10.0 的“ImageMagick.Net-Q16-AnyCPU v7.9.1”上遇到问题,但仍然遇到同样的问题。
所以,我的问题是:
哪些版本的 ImageMagick 有和没有这个功能?
将该处理程序交给我的代码的步骤是什么?
有没有办法增加允许的警告的最大数量,我可以将该限制提高到如此高以至于我不会达到它的程度?