问题描述
我正在使用 System.Drawing.Common 5.0.2 从 .Net 5 中的多页 TIFF 中获取单个页字节。想法是选择 TIFF 图像的 ActiveFrame,然后保存到流中,最后将流的字节存储到集合中以供进一步使用。
在主机操作系统(Windows 10)上调试时代码运行良好。 但是,在基于 .Net 5 运行时 (Debian) 的 docker 容器中运行相同的代码、相同的 15 页 2MB TIFF 文件时,我无法正确获取页面字节。每个页面的字节大小相同,大约 200MB。假设大约为 100KB。
以下是代码。
private void GetPagelist(string localDocPath,int pageCount,ConcurrentDictionary<int,byte[]> Pagelist)
{
Parallel.For(0,pageCount,index =>
{
using (var image = System.Drawing.Image.FromFile(localDocPath))
{
using (var imagestream = new MemoryStream())
{
image.SelectActiveFrame(FrameDimension.Page,index);
image.Save(imagestream,ImageFormat.Tiff);
Pagelist.TryAdd(index,imagestream.ToArray());
}
}
});
}
libgdiplus 已经通过 Dockerfile 安装到容器中
RUN apt-get update \
&& apt-get install -y --allow-unauthenticated \
libc6-dev \
libgdiplus \
libx11-dev \
&& rm -rf /var/lib/apt/lists/*
如果您知道如何解决此问题,我们将不胜感激!
在主机操作系统 windows 10 上调试
在 .Net 5 运行时 (Debian) docker 容器中调试
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)