uniapp base64转png
时间: 2023-10-25 09:10:17 浏览: 90
在uniapp中,可以使用uni.base64ToArrayBuffer方法将base64编码的图片转换成ArrayBuffer类型的数据,然后利用canvas将该数据绘制成图片并保存为png格式。
以下是一个示例代码:
```javascript
// 将base64编码的图片转换为ArrayBuffer类型的数据
function base64ToArrayBuffer(base64) {
var binaryString = atob(base64);
var len = binaryString.length;
var bytes = new Uint8Array(len);
for (var i = 0; i < len; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
return bytes.buffer;
}
// 将ArrayBuffer类型的数据绘制成图片并保存为png格式
function saveBase64ToPng(base64) {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var img = new Image();
img.onload = function() {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
canvas.toBlob(function(blob) {
uni.saveImageToPhotosAlbum({
filePath: blob,
success: function() {
uni.showToast({
title: '保存成功',
icon: 'none'
});
},
fail: function() {
uni.showToast({
title: '保存失败',
icon: 'none'
});
}
});
}, 'image/png');
};
img.src = 'data:image/png;base64,' + base64;
}
// 调用示例
var base64 = 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAtSURBVHgB7dHBDQAgCAPRg8n+/4QYxgqjRiRj2QHKB2wZJ5yggRfVfL3Mm8qPrVvOx1L1sGv5qP7q2VxQAAAAASUVORK5CYII=';
var arrayBuffer = base64ToArrayBuffer(base64);
saveBase64ToPng(arrayBuffer);
```
注意:在使用uni.saveImageToPhotosAlbum方法保存图片时,需要用户授权。
阅读全文