转换列表的图像到单一Tiff文件使用MagickImage.NET

本文关键字:文件 MagickImage NET Tiff 单一 列表 图像 转换 | 更新日期: 2023-09-27 18:18:15

我使用以下代码从使用MagickImage的图像列表中创建单个tiff文件。. NET库:

    /// <summary>
    /// Create single tiff file from a list of base64String images
    /// </summary>
    /// <param name="pages">A list of base64String images</param>
    /// <returns>Byte array of the created tiff file</returns>
    public static byte[] CreateSingleTiff(List<string> pages)
    {
        MagickImage pageImage;
        using (MemoryStream byteStream = new MemoryStream())
        {
            using (MagickImageCollection imagecoll = new MagickImageCollection())
            {
                for (int i = 0; i < pages.Count; i++)
                {
                    byte[] newBytes = Convert.FromBase64String(pages[i].Replace("data:image/Jpeg;base64,", ""));
                    pageImage = new MagickImage(newBytes);
                    imagecoll.Add(pageImage);
                }
                return imagecoll.ToByteArray();//The problem occurs right here
            }
        }
    }

但是我只看到第一页!

下面是我用来在磁盘上写入图像的行:

Image.FromStream(new MemoryStream(result)).Save(path, System.Drawing.Imaging.ImageFormat.Tiff);

我试图挖掘stackoverflow类似的东西,但我没有运气。显然没有很好的支持MagickImage。网络图书馆。如果你觉得这个方法没用那么除了这个方法还有什么方法呢

转换列表的图像到单一Tiff文件使用MagickImage.NET

似乎这一行return imagecoll.ToByteArray();有问题,图像是一个多页tiff图像,返回的字节数组的长度与添加到tiff图像的图像相比太小。我发现了一个重载方法,使用MagickFormat enum将图像格式作为参数,在我的情况下,我使用MagickFormat.Tiff