资讯专栏INFORMATION COLUMN

文件上传前压缩图片尺寸大小,支持安卓微信APP浏览器

罗志环 / 2902人阅读

</>复制代码

  1. function ImageFileResize(file, maxWidth, maxHeight, callback) {
  2. var Img = new Image;
  3. var canvas = document.createElement("canvas");
  4. var ctx = canvas.getContext("2d");
  5. Img.onload = function() {
  6. if (Img.width>maxWidth || Img.height>maxHeight) {
  7. var bili = Math.max(Img.width/maxWidth, Img.height/maxHeight);
  8. canvas.width = Img.width/bili;
  9. canvas.height = Img.height/bili;
  10. }else{
  11. canvas.width = Img.width;
  12. canvas.height = Img.height;
  13. }
  14. ctx.drawImage(Img, 0, 0, Img.width, Img.height, 0, 0, canvas.width, canvas.height);
  15. // $("body").append(canvas);
  16. callback(canvas.toDataURL());
  17. };
  18. try{
  19. Img.src = window.URL.createObjectURL(file);
  20. }catch(err){
  21. try{
  22. Img.src = window.webkitURL.createObjectURL(file);
  23. }catch(err){
  24. alert(err.message);
  25. }
  26. }
  27. }
  28. $(".js-uploader").on("click", function () {
  29. var $clickObj = $(this);
  30. var $fileInput = $("");
  31. $fileInput.on("change",function () {
  32. $clickObj.text("正在上传...");
  33. ImageFileResize($fileInput[0].files[0], 800, 800, function (dataUrl) {
  34. $.ajax({
  35. type: "POST",
  36. url: "createMobileUrl("Upload")?>",
  37. data: {imgDatUrl:dataUrl},
  38. success : function (ret) {
  39. $clickObj.prev().remove();
  40. $clickObj.before(" ");
  41. $clickObj.next().val(ret.path);
  42. $clickObj.text("重新上传");
  43. },
  44. dataType : "json"
  45. });
  46. });
  47. });
  48. $fileInput.click();
  49. });

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85682.html

相关文章

  • <转载>图片流量节省60%:基于CDN的sharpP自适应图片技术实践

    摘要:开启验证上传一张新图片,使用手安卓版本访问已支持域名的图片,如果请求带了,检查返回图片格式是否为如果旧的图片未按预期返回,返回了或原图可能是结点缓存,正常天后过期回源则会返回图片。 对于图片较多的网站,本文结合具体案例给出了如何基于CDN的sharpP自适应图片无痛接入方案,据统计效果可在原图基础上节省60%-75%的流量。作者:陈忱 出处:腾云阁文章 目前移动端运营素材大部分依赖图...

    JerryZou 评论0 收藏0
  • 使用WebUploader解决安卓微信览器上传图片中遇到的bug

    摘要:具体的环境我也不太了解,但是经过实际多台安卓机型的测试,我采取的方案可以基本确保在安卓机中微信浏览器的成功上传。 摘自个人博客:走啊走的记录,欢迎点击查看,效果更佳! 微信浏览器上传图片bug的原因 微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器。具体的环境我也不太了解,但是经过实际多台安卓机型的测试,我采取的方案可以基本确保在安卓机中微信浏览器...

    ybak 评论0 收藏0

发表评论

0条评论

罗志环

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<