Ork*_*kar 4 .net c# base64 file
使用已知的转换方法将多页tiff文件转换为base64字符串似乎只包含一个页面.
我从本地磁盘获取多页tiff文件:
Image multiPageImage = Image.FromFile(fileName);
Run Code Online (Sandbox Code Playgroud)
将其转换为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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后将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;
}
Run Code Online (Sandbox Code Playgroud)
但结果图像只有单帧.这就是为什么我问是否有可能在base64字符串中包含所有帧?
你正在做很多不必要的事情只是为了读取文件并将其写回磁盘.
您可以像这样阅读文件的所有内容
var data = File.ReadAllBytes("image.tiff")
Run Code Online (Sandbox Code Playgroud)
然后用Convert.ToBase64String(data)它将其转换为基数为64的字符串.
var data = File.ReadAllBytes("image.tiff");
var result = Convert.ToBase64String(data);
Run Code Online (Sandbox Code Playgroud)
然后你可以将它转换回它的字节表示并将其保存到磁盘.
var bytes = Convert.FromBase64String(result);
File.WriteAllBytes("image2.tiff", bytes);
Run Code Online (Sandbox Code Playgroud)
File.ReadAllBytes()
Convert.ToBase64String()
| 归档时间: |
|
| 查看次数: |
2953 次 |
| 最近记录: |