Wie kann ich Base64-Bilder im Miniprogramm anzeigen? Im folgenden Artikel erfahren Sie, wie Sie eine Vorschau von Base64-Bildern im WeChat-Applet anzeigen. Ich hoffe, er hilft Ihnen weiter!

1. Das vom Hintergrund übertragene Bild ist im Base64-Format. Wenn Sie es anzeigen möchten, verwenden Sie ["data:image/PNG;base64," + data], um es normal anzuzeigen. Beim Aufrufen der Vorschau der WeChat-API-Schnittstelle treten dann viele Probleme auf, z. B.:
Zweitens habe ich nach einer Anfrage das gefunden offizielle Antwort. WeChat offiziell bedeutet, dass Sie die URL-Adresse verwenden müssen und das Base64-Format nicht unterstützt wird:
wx.previewImage API führt zum Absturz von WeChat Open Community (qq.com )
https:/ /developers.weixin.qq.com/community/develop/doc/00088c9e44c3d880597ab22b15bc00?highLine=wx.previewImage%20base64

Idee: Speichern Sie zunächst base64 als temporäre Datei. Lokal, dann Vorschau, temporäre Dateien am Ende der Vorschau löschen
// 获取应用实例
const app = getApp()
Page({
data: {
//base64数据,由后台传过来
base64: '',
//本机的临时文件路径
localImgUrl: ''
},
onShow: function() {
// 在这里删除临时文件
var localImgUrl = this.data.localImgUrl;
if(localImgUrl) {
var fs = wx.getFileSystemManager();
fs.unlinkSync(localImgUrl);
fs.closeSync();
}
},
//预览图片
onPreviewImage() {
var base64 = "data:image/PNG;base64," + this.data.base64;
var imgPath = wx.env.USER_DATA_PATH + '/e-invoice' + Date.parse(new Date()) + '.png';
var imageData = base64.replace(/^data:image\/\w+;base64,/, "");
var fs = wx.getFileSystemManager();
fs.writeFileSync(imgPath, imageData, "base64");
fs.close();
this.setData({
localImgUrl: imgPath
})
wx.previewImage({
urls: [imgPath] // 需要预览的图片http链接列表
})
}
})[Verwandte Lernempfehlungen: Mini-Tutorial zur Programmentwicklung]
Das obige ist der detaillierte Inhalt vonSo zeigen Sie Base64-Bilder im Miniprogramm an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!