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

在Vue中将图片base64编码的方法可以通过使用canvas来实现。首先,你需要创建一个canvas元素,并获取它的2D上下文。然后,创建一个Image对象,并设置其crossOrigin属性为'Anonymous'以解决跨域问题。接下来,当Image对象加载完成后,将其绘制到canvas上下文中。最后,使用canvas的toDataURL方法将绘制的图像换为base64编码的字符串。 下面是一个示例代码: ```javascript methods: { handleSave() { var image = new Image(); var base64 = ''; image.src = document.getElementsByClassName('logo_pic')\[0\].src; this.getBase64Image(image.src, function(res) { base64 = res; }); }, getBase64Image(url, callback, outputFormat) { var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); var img = new Image(); img.crossOrigin = 'Anonymous'; img.onload = function() { canvas.height = img.height; canvas.width = img.width; ctx.drawImage(img, 0, 0); var dataURL = canvas.toDataURL(outputFormat || 'image/png'); callback.call(this, dataURL); canvas = null; }; img.src = url; }, saveImageCallback(res) { Toast('save success'); } } ``` 在上面的代码中,handleSave方法用于保存图片到本地。getBase64Image方法用于将图片换为base64编码。saveImageCallback方法用于保存成功后的回调函数。你可以根据自己的需求进行相应的修改和调用。 #### 引用[.reference_title] - *1* [image图片base64 js图片编码](https://blog.csdn.net/Chris__wang/article/details/102917563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值