이번에는 위챗 미니 프로그램 개발의 사진압축 기능을 소개해 드리겠습니다. 위챗 미니 프로그램의 이미지 압축 기능 개발 시 주의사항은 무엇인가요?
Xiaolong 형제의 WeChat 애플릿은 초기 단계에서 IE 세계의 6에 해당합니다. 여기서는 제가 방금 겪었던 어려움에 대해 말씀드리겠습니다.
사진 API.
wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 var tempFilePaths = res.tempFilePaths; } });
위에 사이즈 종류가 명확하게 나와있네요. 수고를 덜고 싶었지만 소용없네요...
더 이상 고민하지 않고 IOS와 안드로이드의 차이점과 사진 압축의 함정에 대해 말씀드리겠습니다.
// 点击照相 takePictures:function(){ var that = this; wx.chooseImage({ count: 1, // 默认9 sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 var tempFilePaths = res.tempFilePaths; that.setData({ attendSuccessImg:tempFilePaths[0] }); // 上传图片 //判断机型 var model = ""; wx.getSystemInfo({ success:function(res){ model= res.model; } }) if(model.indexOf("iPhone") <= 0){ that.uploadFileOpt(that.data.attendSuccessImg); console.log(111111) }else{ drawCanvas(); } // 缩放图片 function drawCanvas(){ const ctx = wx.createCanvasContext('attendCanvasId'); ctx.drawImage(tempFilePaths[0], 0, 0, 94, 96); ctx.draw(); that.prodImageOpt(); } } }); }, // 生成图片 prodImageOpt:function(){ var that = this; wx.canvasToTempFilePath({ canvasId: 'attendCanvasId', success: function success(res) { that.setData({ canvasImgUrl:res.tempFilePath }); // 上传图片 that.uploadFileOpt(that.data.canvasImgUrl); }, complete: function complete(e) { } }); },
사진을 찍기 위해 클릭한 후 IOS는 이미지 압축을 수행합니다. 그러나 Android는 여전히 크기가 크기 때문에 이 과정에서 현재 모델을 결정한 다음 캔버스 압축을 수행해야 합니다.
위 코드는 받자마자 바로 사용이 가능하지만, wxml의 작은 부분에 canvas 태그와 함께 추가해야 하는 부분이 있습니다.
인터페이스 호출을 해보세요. 모두에게 도움이 되기를 바랍니다.
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 자료:
360 브라우저 호환 모드에서 불완전한 페이지 표시를 처리하는 방법
위 내용은 WeChat 애플릿, 이미지 압축 기능 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!