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
相关问题
怎么把PixelMap图片BASE64
8077浏览 • 1回复 待解决
如何base64换成图片
8740浏览 • 2回复 待解决
PixelMap怎么Base64?(非Java)
1443浏览 • 2回复 待解决
验证pixelmap数据bufferbase64是否正常
860浏览 • 1回复 待解决
有没有base64化的相关代码?
326浏览 • 0回复 待解决
如何进行base64编码,有人知道吗?
253浏览 • 1回复 待解决
base64字符串如何转为图片并保存
1264浏览 • 1回复 待解决
如何实现PixelMap和base64的相互转换
551浏览 • 1回复 待解决
canvas怎么绘制资源目录下的图片
285浏览 • 1回复 待解决
Canvas如何绘制app.media下面的图片?
1245浏览 • 1回复 待解决
JS UI框架中canvas如何动态指定宽高
5440浏览 • 1回复 待解决
js获取canvas对象两种方式有啥不同?
6327浏览 • 1回复 待解决
Scroll组件内显示不全问题
439浏览 • 1回复 待解决