我有以下c#代码:
struct
它产生以下运行时错误:
private void BurstPdf(string tifName, string targetfolder)
{
Console.WriteLine("BurstPdf({0}, {1})", tifName, targetfolder);
using (MagickImageCollection tiffPageCollection = new MagickImageCollection())
{
tiffPageCollection.Read(tifName); // Fails on this line.
以下是我试图找到解决此问题的方法:
Unhandled Exception: ImageMagick.MagickCoderErrorException: Failed to read directory at offset 51038729. `TIFFReadDirectory' @ error/tiff.c/TIFFErrors/645
at ImageMagick.MagickImageCollection.NativeMagickImageCollection.ReadFile(MagickSettings settings)
at ImageMagick.MagickImageCollection.AddImages(String fileName, MagickReadSettings readSettings, Boolean ping)
at ImageMagick.MagickImageCollection.Read(String fileName)
,因此它是指定文件名的代码。我们使用相同的技术生成其他文件(打印到配置为输出.tif而不是打印的打印机驱动程序,并且能够使用imagemagick读取它们。但是,它们不是那么大。
如何在imagemagick中读取此文件?
[编辑] 我尝试了第二个22MB的文件,它失败并出现此错误:
Directory.GetFiles()
这看起来像是我希望使用损坏的文件的消息,但它能够与其他更大的文件一样查看。
答案 0 :(得分:0)
我能够通过使用Windows Photo Viewer将文件打印到.pdf来修复.tif文件。然后在Mac上使用预览将文件导出为.tif。
将打印选项设置为不锐化图片非常重要,否则页面上的条形码会被遮挡。
我在导出文件时更改了文件的DPI,以确保它重新编码文件。