小程序
小游戏
企业微信
微信支付
扫描小程序码分享
小程序chooseImage时如何把图片转换成base64
44 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
第二页。。。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我能 看见 呀 就在 我上面
。。。
哎,我的回答哪去了?
666 我的兄弟 我去试试
到底怎么 转呀 wx.chooseImage({ success ----> 返回的 是一个临时地址 我在 网上找到三种 转 Base64
wx.chooseImage({
success
http://blog.csdn.net/huangmeimao/article/details/74905749 ---->这个大佬写的 utils.js
var uploadImage = this.data.imageList[0]var reader = new FileReader()
reader.onload = function (e) {
var arrayBuffer = reader.result;
var base64 = wx.arrayBufferToBase64(arrayBuffer) } reader.readAsArrayBuffer(new Blob(this.data.imageList)) 3. 用画布 去重新铺 然后返回 一个 Base64我都试了试 不好用 至于楼上上上 兄弟 说的 getImageData 在 api 里 也没找到 很头疼 求一个 好方法 能把 chooseImage 返回的 图片 给转成 Base64 二进制的 编码 拜托了 \拜托了 拜托了\
只是见过这个
试了一下
test3:
function
() {
const ctx = wx.createCanvasContext(
'myCanvas'
)
success: res => {
ctx.drawImage(res.tempFilePaths[0], 0, 0, 150, 100)
ctx.draw()
wx.canvasGetImageData({
canvasId:
,
x: 0,
y: 0,
width: 100,
height: 100,
success: res=> {
console.log(res.width)
// 100
console.log(res.height)
console.log(res.data
instanceof
Uint8ClampedArray)
// true
console.log(res.data.length)
// 100 * 100 * 4
console.log(res.data)
var
base64 = wx.arrayBufferToBase64(res.data.buffer);
this
.setData({
b64: base64
});
}
})
发现最终的base64结果是:
AAAAAAAAAAAAAA(非常多个A)AAA==
主要是不知道canvasGetImageData得出的Uint8ClampedArray是什么,应该怎么样转成ArrayBuffer,我代码那样的转化看起来应该是姿势不对
现在更新了一个api,canvas里有一个getImageData了,
没找到0,0,确定有?
https://mp.weixin.qq.com/debug/wxadoc/dev/api/canvas/draw-image.html?search-input=getImageData
正在加载...
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
第二页。。。
我能 看见 呀 就在 我上面
。。。
哎,我的回答哪去了?
666 我的兄弟 我去试试
到底怎么 转呀
wx.chooseImage({
success
----> 返回的 是一个临时地址 我在 网上找到三种 转 Base64http://blog.csdn.net/huangmeimao/article/details/74905749 ---->这个大佬写的 utils.js
var uploadImage = this.data.imageList[0]var reader = new FileReader()
reader.onload = function (e) {
var arrayBuffer = reader.result;
var base64 = wx.arrayBufferToBase64(arrayBuffer) } reader.readAsArrayBuffer(new Blob(this.data.imageList))
3. 用画布 去重新铺 然后返回 一个 Base64
我都试了试 不好用
至于楼上上上 兄弟 说的 getImageData 在 api 里 也没找到 很头疼
求一个 好方法
能把 chooseImage 返回的 图片 给转成 Base64 二进制的 编码
拜托了 \
拜托了 拜托了\
只是见过这个
试了一下
test3:
function
() {
const ctx = wx.createCanvasContext(
'myCanvas'
)
wx.chooseImage({
success: res => {
ctx.drawImage(res.tempFilePaths[0], 0, 0, 150, 100)
ctx.draw()
wx.canvasGetImageData({
canvasId:
'myCanvas'
,
x: 0,
y: 0,
width: 100,
height: 100,
success: res=> {
console.log(res.width)
// 100
console.log(res.height)
// 100
console.log(res.data
instanceof
Uint8ClampedArray)
// true
console.log(res.data.length)
// 100 * 100 * 4
console.log(res.data)
var
base64 = wx.arrayBufferToBase64(res.data.buffer);
this
.setData({
b64: base64
});
}
})
}
})
}
发现最终的base64结果是:
AAAAAAAAAAAAAA(非常多个A)AAA==
主要是不知道canvasGetImageData得出的Uint8ClampedArray是什么,应该怎么样转成ArrayBuffer,我代码那样的转化看起来应该是姿势不对
没找到0,0,确定有?
https://mp.weixin.qq.com/debug/wxadoc/dev/api/canvas/draw-image.html?search-input=getImageData
现在更新了一个api,canvas里有一个getImageData了,