微信公众号网页开发wx.chooseImage接口获取的图片非原图,Android上怎么获取原图?
发布于 6 年前 作者 tzou 10752 次浏览 来自 问答

“weixin-js-sdk”: “^1.6.0”;

wx.chooseImage({

          count: 1, // 默认9

          sizeType: [‘original’], // 可以指定是原图还是压缩图,默认二者都有

          sourceType: [‘album’, ‘camera’], // 可以指定来源是相册还是相机,默认二者都有

          success: function(res) {

            console.log(res);

            var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片

            var faceImgPath = localIds[0];

            console.log(‘imgPath:’ + faceImgPath);

            that.checkImg(faceImgPath);

          },

        });

 

checkImg: function(imgPath) {

        let that = this;

        wx.getLocalImgData({

          localId: imgPath, // 图片的localID

          success: function(res) {

            var localData = res.localData;

            if (localData.indexOf(‘data:image’) != 0) {

              //判断是否有这样的头部

              localData = ‘data:image/jpeg;base64,’ + localData

            }

            localData = localData.replace(/\r|\n/g, ‘’).replace(‘data:image/jgp’, ‘data:image/jpeg’)

            //第一个替换的是换行符,第二个替换的是图片类型,因为在IOS机上测试时看到它的图片类型时jgp,

            //这不知道时什么格式的图片,为了兼容其他设备就把它转为jpeg

            let image = new Image();

            let w, h;

 

            alert("__wxjs_is_wkwebview:" + window.__wxjs_is_wkwebview);

            if (window.__wxjs_is_wkwebview) {

              image.src = localData;

            } else {

              image.src = imgPath;

            }

            alert(“imgSrc:” + image.src)

            image.onload = function() {

              w = image.width; // 图片宽度

              h = image.height; // 图片高度

              alert(“图片宽高:” + w + “*” + h);

              image.onload = null; // 避免重复加载

		  console.log("图片宽高:" + w + "\*" + h);

            };

          }

        });

      },

回到顶部