各位大神,帮忙解答:
场景:调用 wx.chooseImage 方法,上传图片获取base64数据后回显在页面中,选择图片时用户可以选择上传原图。
使用设备:测试了多款三星品牌的手机
出现问题:无论选择原图或者选择手机预先拍摄的图片,在浏览器回显出来的图片都会不清晰。导致上传至服务器的图片也会失帧。
备注:微信调用三星手机摄像机时,拍摄的照片是清晰的,但是选择原图后,点击‘确定’,就会造成图片不清晰,此时尚未回显在页面中,也未经过我们自己的代码逻辑处理,所以初步分析是微信压缩了三星手机上传的图片。
不知道各位有没有处理过类型情况?是否可以帮忙解答一下?
其余的机型是否正常?提供下测试代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
不好意思,公司的测试环境对外网有限制,无法使用其他网络访问,代码如下。有什么问题请随时提出。
wx.chooseImage({
count: 9,
// 默认9
sizeType: [
'original'
,
'compressed'
],
// 可以指定是原图还是压缩图,默认二者都有
sourceType: sourceType,
// 可以指定来源是相册还是相机,默认二者都有
success:
function
(res) {
var
localIds = res.localIds;
// 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
var
base64 =
""
;
if
(localIds!=
null
){
var
i=0;
while
(localIds[i])
{
base64 = localIds[i];
if
(mode!=
null
&& mode!=
''
&& mode==
'server'
){
//上传服务端
wx.uploadImage({
localId: localIds[i],
// 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1,
// 默认为1,显示进度提示
success:
function
(res) {
var
serverId = res.serverId;
// 返回图片的服务器端ID
callback(serverId);
}
});
}
else
{
//获取本地
wx.getLocalImgData({
localId: localIds[i],
// 图片的localID
success:
function
(res) {
var
localData = res.localData;
// localData是图片的base64数据,可以用img标签显示
base64=localData;
if
(isIos==0){
base64=
'data:image/jgp;base64,'
+localData;
}
$(
'<img>'
,{
src:base64
}).css({
width:
'334px'
,
}).appendTo($(element));
callback(localData);
}
});
};
i++;
};
};
其他测试过的安卓手机均正常,图片清晰,目前只有三星手机会出现这个问题
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html,麻烦按照教程提供
你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
请参考上一条评论回复,谢谢帮忙