Image转Base64

今天和一个朋友联调图片转Base64时发现一个问题

public static string ImageToBase64(Image img)
{
BinaryFormatter binFormatter = new BinaryFormatter();
MemoryStream memStream = new MemoryStream();
binFormatter.Serialize(memStream, img);
byte[] bytes = memStream.GetBuffer();
string base64 = Convert.ToBase64String(bytes);
return base64;
}

注意这个是错误的,产生的Base64和标准的不一致。
使用下面这个可以

public static string ImageToBase64(Image img)
{
var ext = GetExtension(img);
byte[] imgByte = ImageToBytes(img);
string strbaser64 = Convert.ToBase64String(imgByte);
List<byte> listByte = new List<byte>();
listByte = imgByte.ToList();


return "data:image/"+ ext.Substring(1, ext.Length-1) + ";base64," + strbaser64;
}

转载于:https://www.cnblogs.com/zhaogaojian/p/8945967.html

在C# MAUI中,将Image换为Base64字符串可以通过以下几个步骤实现: 1. **加载Image**:首先,需要加载你要换的Image文件。 2. **读取Image数据**:将Image文件读取为字节数组。 3. **换为Base64字符串**:使用`Convert.ToBase64String`方法将字节数组换为Base64字符串。 以下是一个示例代码,展示了如何实现这一过程: ```csharp using System; using System.IO; using System.Threading.Tasks; using Microsoft.Maui.Controls; public class ImageToBase64Converter { public static async Task<string> ConvertImageToBase64String(string imagePath) { if (!File.Exists(imagePath)) { throw new FileNotFoundException("Image file not found.", imagePath); } using (FileStream fs = File.OpenRead(imagePath)) { byte[] imageBytes = new byte[fs.Length]; await fs.ReadAsync(imageBytes, 0, (int)fs.Length); string base64String = Convert.ToBase64String(imageBytes); return base64String; } } } // 使用示例 public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); ConvertImageToBase64(); } private async void ConvertImageToBase64() { string imagePath = "path/to/your/image.png"; try { string base64String = await ImageToBase64Converter.ConvertImageToBase64String(imagePath); Console.WriteLine("Base64 String: " + base64String); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } } } ``` 在这个示例中,`ConvertImageToBase64String`方法接收一个图片路径作为参数,并返回该图片的Base64字符串。`MainPage`类中的`ConvertImageToBase64`方法展示了如何使用这个换器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值