Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

getLessLimitSizeImage.js 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // 压缩上传图片
  2. export function translate(imgSrc, scale, fileName, callback) {
  3. let scales = parseFloat(scale.toFixed(2))
  4. let img = new Image();
  5. img.src = imgSrc;
  6. img.onload = function() {
  7. let canvas = document.createElement('canvas') // 创建Canvas对象(画布)
  8. const context = canvas.getContext('2d')
  9. // 默认按比例压缩
  10. // let cw = img.width
  11. // let ch = img.height
  12. let w = img.width
  13. let h = img.height
  14. canvas.width = w
  15. canvas.height = h
  16. // if (cw > 600 && cw > ch) {
  17. // w = 600
  18. // h = (600 * ch) / cw
  19. // canvas.width = w
  20. // canvas.height = h
  21. // }
  22. // if (ch > 600 && ch > cw) {
  23. // h = 600
  24. // w = (600 * cw) / ch
  25. // canvas.width = w
  26. // canvas.height = h
  27. // }
  28. // 生成canvas
  29. context.clearRect(0, 0, 0, w, h)
  30. context.drawImage(img, 0, 0, w, h)
  31. let dataurl = canvas.toDataURL('image/jpeg', scales); //压缩比例
  32. let arr = dataurl.split(',')
  33. // console.log(arr, dataurl, 'translate')sss
  34. let mime = arr[0].match(/:(.*?);/)[1]
  35. let bstr = atob(arr[1])
  36. let n = bstr.length
  37. let u8arr = new Uint8Array(n);
  38. while (n--) {
  39. u8arr[n] = bstr.charCodeAt(n);
  40. }
  41. let file = new File([u8arr], fileName, {
  42. type: mime
  43. });
  44. // file.lastModifiedDate = new Date();
  45. canvas = null;
  46. callback && callback(dataurl, file);
  47. }
  48. }