js canvas转base64编码图片不全

各位大神好

我现在的需求是,选择图片,转成base64编码,上传到服务器

思路是用canvas,选择本地图片后,画到canvas上,然后通过canvas获取base64编码

代码如下:

document.choose('image',function(err,uri){
            let ctx = that.$element('drawImage').getContext('2d');
            let img = new Image();
            img.src = uri;
            img.onload = function() {
                console.log('Image load success');
                ctx.drawImage(img, 0, 0, 320, 250);
            }

        }).then(function(data){
            console.log(data)
        })

然后转base64部分

let el =this.$refs.canvas;
        let base = el.toDataURL('image/png');
        console.log(base)

 

然后我是远程模拟器上测试的,为了测试,我现在模拟器里通过相机拍了一张照片

然后选择图片后,模拟器上显示如下

js canvas转base64编码图片不全-鸿蒙开发者社区但是上传到服务器里,通过base64编码还原的图片如下

js canvas转base64编码图片不全-鸿蒙开发者社区

两者就不一样…… 感觉是不全,我本来想用手机真机测试的,结果手机上选择文件时,一点图片就自动退回桌面了……

求解

js
图片
canvas
2022-01-14 21:09:35
浏览
1
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FrancisJ
2

我之前也遇到过这个问题, 我记得这个是toDataURL本身的问题,你可以打印一下通过这个toDataURL转换出的base64的码流,会发现只有一小截码流,远远不够转换成目标图片的长度。但是好像toDataURL在api版本为7时没有这个问题。

分享
微博
QQ
微信
回复2
2022-01-15 23:53:03
相关问题
HarmonyOS 图片进行base64编码报错
627浏览 • 1回复 待解决
HarmonyOS 图片压缩和图片base64
174浏览 • 1回复 待解决
怎么把PixelMap图片BASE64
9367浏览 • 1回复 待解决
如何base64换成图片
10263浏览 • 2回复 待解决
HarmonyOS如何将图片Base64
856浏览 • 1回复 待解决
HarmonyOS base64编码问题
578浏览 • 1回复 待解决
HarmonyOS base64编码的API
162浏览 • 1回复 待解决
HarmonyOS arraybufferbase64乱码
115浏览 • 1回复 待解决
arkts中怎么实现base64编码
774浏览 • 1回复 待解决
PixelMap怎么Base64?(非Java)
3257浏览 • 2回复 待解决
如何将PixelMap图片base64字符串?
474浏览 • 1回复 待解决
如何将图片base64字符串PixelMap?
553浏览 • 1回复 待解决
验证pixelmap数据bufferbase64是否正常
1807浏览 • 1回复 待解决
如何进行base64编码,有人知道吗?
622浏览 • 1回复 待解决
有没有base64化的相关代码?
785浏览 • 0回复 待解决
HarmonyOS 图片操作,合成后导出base64
179浏览 • 1回复 待解决
HarmonyOS Image如何显示base64图片
413浏览 • 1回复 待解决
HarmonyOS base64解码报错
980浏览 • 1回复 待解决
HarmonyOS 图片转为base64字符串
143浏览 • 1回复 待解决
HarmonyOS 如何将base64数据转换为图片
454浏览 • 1回复 待解决