>웹 프론트엔드 >JS 튜토리얼 >WeChat 애플릿, 이미지 압축 기능 개발

WeChat 애플릿, 이미지 압축 기능 개발

php中世界最好的语言
php中世界最好的语言원래의
2018-03-23 10:02:402623검색

이번에는 위챗 미니 프로그램 개발의 사진압축 기능을 소개해 드리겠습니다. 위챗 미니 프로그램의 이미지 압축 기능 개발 시 주의사항은 무엇인가요?

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 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

jQuery 코드 최적화 방법 요약

360 브라우저 호환 모드에서 불완전한 페이지 표시를 처리하는 방법

Node.js의 비대칭 암호화에 대한 자세한 설명

위 내용은 WeChat 애플릿, 이미지 압축 기능 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:js 동적 연산 형식다음 기사:js 동적 연산 형식