微信公众号的问题!分机型chooseImage上传图片变形?oppo和vivo都会,其他机子正常
发布于 5 年前 作者 yan67 624 次浏览 来自 问答

使用微信jssdk官方提供的上传图片的接口,把图片显示在页面上,就会出现图片变形?

<div class="container">
        <div class="page-header">

            <form id="uploadForm" enctype='multipart/form-data'>
                <div class="form-group">

                    <div class="fileinput fileinput-new" data-provides="fileinput" id="exampleInputUpload" style="width: 100%">

                        <div class="fileinput-preview fileinput-exists thumbnail" style="  display: block" id="selectImg" onclick="layer_demo();">
                            <img id='picImg' style="width: 100%;height: auto;" src="../images/noimage.png" alt="" />
                        </div>

                        <div>
                            <span class="btn btn-primary btn-file" style="display: none">
                                <!--<span class="fileinput-new">选择图片</span>-->
                            <!--<span class="fileinput-exists">换一张</span>-->

                            <input type="file" name="file" id="file" accept="image/*" capture="user" />
                            </span>
                            <!--<a href="javascript:;" class="btn btn-warning fileinput-exists" data-dismiss="fileinput">移除</a>-->
                        </div>
                    </div>
                </div>
                <!--<button type="button" id="uploadSubmit" class="btn btn-info">提交</button>-->
            </form>
        </div>
    </div>
   function layer_demos() {
 wx.chooseImage({
            count: 1, // 默认9
            sizeType: ['compressed'], // 指定是原图还是压缩图,默认都有
            sourceType: ['album', 'camera'], // 指定来源是相册还是相机,默认都有
            success: function(res) {
                var localId = res.localIds[0]; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
                console.log(res)
                wx.getLocalImgData({
                    localId: localId, // 图片的localID
                    success: function(res) {
                        var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
                        // console.log(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
                        $("#picImg").attr('src', localData)
                    }
                });

            }
        });}

这个是上传之后显示在页面的图这个是原图,明细可以看到被压缩变形了,这个是怎么回事呢,其他机型不会出现这个问题,华为,苹果都不会,求官方大大马上看看这个是怎么回事

1 回复

微信版本是多少呢?

回到顶部