xfo*_*fun 5 c# tiff magick.net
我正在使用 Magick.NET 并尝试创建多页 TIFF 文件。我的输入是一个 PDF 文件。但是将结果写入 MemoryStream 或将其作为字节数组获取会导致错误:
iisexpress.exe:在写入目录之前刷新数据时出错。`TIFFWriteDirectorySec'@error/tiff.c/TIFFErrors/551
但是当我将结果写入硬盘上的文件时,没有错误并且文件很好。
这是我的代码:
var outputStream = new MemoryStream();
using (var inputPdf = new MagickImageCollection())
{
inputPdf.Read(rawData, settings);
using (var tif = new MagickImageCollection())
{
foreach (var pdf in inputPdf)
{
pdf.Depth = 8;
pdf.Format = MagickFormat.Tif;
tif.Add(pdf);
}
if (debug)
{
// Writing the data to a file is successful!
tif.Write(pathImage);
}
// But writing it to a stream results in the error!
//tif.Write(outputStream);
// Same as getting the data as byte-array!
var outputData = tif.ToByteArray(MagickFormat.Tif);
outputStream.Write(outputData, 0, outputData.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
解决了。
解决方案是设置压缩:
pdf.CompressionMethod = CompressionMethod.JPEG;
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么吗?
| 归档时间: |
|
| 查看次数: |
2923 次 |
| 最近记录: |