C# - 将多页 tiff 文件转换为 base64 字符串,并使用单个图像转换回结果



我正在从本地磁盘打开一个 tiff 文件:

Image multiPageImage = Image.FromFile(fileName);

然后将其发送到转换方法:

base64string = ImageToBase64(multiPageImage, ImageFormat.Tiff);
public static string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                // Convert Image to byte[]
                image.Save(ms, format);
                byte[] imageBytes = ms.ToArray();
                // Convert byte[] to Base64 String
                string base64String = Convert.ToBase64String(imageBytes);
                return base64String;
            }  
        }

最后,我使用以下代码将我的base64转换为tiff文件:

public static void ConvertBase64ToTiff(string base64string)
    {
        Byte[] bitmapData = new Byte[base64string.Length];
        bitmapData = Convert.FromBase64String(FixBase64ForImage(base64string));
        using (MemoryStream streamBitmap = new System.IO.MemoryStream(bitmapData))
        {
            Bitmap bitImage = new Bitmap((Bitmap)Image.FromStream(streamBitmap));
            bitImage.Save(@"C:myTiff.tiff");
        }            
    }
    public static string FixBase64ForImage(string base64string)
    {
        System.Text.StringBuilder sbText = new System.Text.StringBuilder(base64string, base64string.Length);
        sbText.Replace("rn", String.Empty);
        sbText.Replace(" ", String.Empty);
        return sbText.ToString();
    }

那个固定方法不是我的。其实我不知道这是否是正确的方式。但我到处寻找并尝试我找到的东西。

我的测试表明 base64 字符串只有一个图像。

任何帮助将不胜感激!

对于在

将多页 tiff 文件转换为 base64 反之亦然时遇到问题的人,您可以参考该链接:

是否可以创建一个包含多页 tiff 文件的所有帧的 base64 字符串?

也许这不是完全相同的问题,但答案也会解决这个问题。

最新更新