C# 是否可以创建包含多页tiff文件所有帧的base64字符串?
使用已知的转换方法将多页tiff文件转换为base64字符串似乎只包含一页 我正在从本地磁盘获取多页tiff文件: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
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非常感谢。