Я получаю эту ошибку:
ImageMagick.MagickResourceLimitErrorException: 'TooManyExceptions (exception processing is suspended) @ error/exception.c/ThrowException/969'
В этой строке
using (MagickImageCollection tiffPageCollection = new MagickImageCollection())
{
tiffPageCollection.Read(tifName); // fails here.
}
Проблема возникает из-за того, что на странице 92 есть три ошибки, подобные этой на каждой странице:
{"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» и не встречалось в более ранних версиях. У меня проблема с "ImageMagick.Net-Q16-AnyCPU v7.9.1". Я обновился до v7.10.0 и все еще имел ту же проблему.
Итак, мои вопросы:
Какие версии ImageMagick имеют и не имеют этой функции?
Какие шаги для передачи этого обработчика в мой код?
Есть ли способ увеличить максимальное количество разрешенных предупреждений, и я могу просто поднять этот предел до чего-то настолько высокого, что я не ударю по нему?