Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以创建包含多页tiff文件所有帧的base64字符串?_C#_.net_File_Base64 - Fatal编程技术网

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

C# 是否可以创建包含多页tiff文件所有帧的base64字符串?,c#,.net,file,base64,C#,.net,File,Base64,使用已知的转换方法将多页tiff文件转换为base64字符串似乎只包含一页 我正在从本地磁盘获取多页tiff文件: Image multiPageImage = Image.FromFile(fileName); 将其转换为base64字符串: base64string = ImageToBase64(multiPageImage, ImageFormat.Tiff); public static string ImageToBase64(Image image, ImageFormat f

使用已知的转换方法将多页tiff文件转换为base64字符串似乎只包含一页

我正在从本地磁盘获取多页tiff文件:

Image multiPageImage = Image.FromFile(fileName);
将其转换为base64字符串:

base64string = ImageToBase64(multiPageImage, ImageFormat.Tiff);

public static string ImageToBase64(Image image, 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);

        image.Dispose();

        return base64String;
    }  
}
然后将base64转换回映像并将其保存在本地磁盘上以控制结果:

public static Image ConvertBase64ToImage(string base64string)
{
    byte[] bytes = Convert.FromBase64String(base64string);

    Image image;

    using (MemoryStream ms = new MemoryStream(bytes))
    {
        image = Image.FromStream(ms);

        image.Save(@"C:\newTiff.tiff", ImageFormat.Tiff);
    }

    return image;
}

但结果图像只有一帧。这就是为什么我要问是否可以将所有帧都设置为base64字符串?

您正在做很多不必要的事情,只是为了读取文件并将其写回磁盘

您可以像这样读取文件的所有内容

var data = File.ReadAllBytes("image.tiff")
然后使用
Convert.ToBase64String(data)
将其转换为base 64字符串

var data = File.ReadAllBytes("image.tiff");
var result = Convert.ToBase64String(data);
然后可以将其转换回字节表示形式并保存到磁盘

var bytes = Convert.FromBase64String(result);
File.WriteAllBytes("image2.tiff", bytes);


这就是您需要的吗
Convert.ToBase64String(File.ReadAllBytes(“image.tiff”))
?@Dreamwalker将整个tiff文件放在一个base64字符串中。base64没有“仅包含tiff文件的第一页”之类的限制。问题一定在您的代码中。显示代码。好的,我编辑了代码。请看一看。问题不是base64,而是你对图像的使用。参见问题“如何用C#对文件进行base64编码”。OP已经在使用代码,但代码不起作用。如果他们需要这方面的帮助,他们必须展示他们的代码。@Dottor非常感谢。