时间:2019-05-07 来源:小程序工厂
还有7个小时,围观案发现场~
让服务器处理啊,前端处理个毛线~~~~~
历史遗留原因,不知道前人出于什么目的
上传大图到服务器需要长时间。所以需要前端处理。但你就是想实现图片的压缩么?你这个写法。真是诡异。这么多for效率高不到哪去。
把你的原图和期望效果发上来。
上传大图到服务器需要长时间。所以需要前端处理。但你就是想实现图片的压缩么?你这个写法。真是诡异。这么多for效率高不到哪去。把你的原图和期望效果发上来。
分块压缩是因为ios上的问题,非ios是没有for循环的,原图就是一般的手机拍出来10m左右的照片就可以了,选完第一张压缩,不等结果,立刻选第二张,试个两三次基本都能看到效果了
1、如果都使用分块。每次只做一块看看会不会有问题。
2、如果有问题说明你的方法有问题需要改近。
3、如果只做1块没问题。都正常的话。如果一个图分成9块做9个按钮触发一下压缩。
4、如果上面的方式也没问题。说明你需要并用到HTML5 Web Workers了。但如果简单想测试的话可以使用setTimeout...
以上通过问题分析。不知道实际业务是否如此。但我始终感觉你把一个压缩成小图这个事搞复杂了。
能不能用类似html2canvas的插件截图来搞个伪压缩,光截图片区域
这个方法没试过,我试下
为什么不修改图片质量呢
function dealImage(path, obj, callback){ var img = new Image();
img.src = path;
img.onload = function(){ var that = this; // 默认按比例压缩
var w = that.width,
h = that.height,
scale = w / h;
w = obj.width || w;
h = obj.height || (w / scale); var quality = 0.7; // 默认图片质量为0.7
//生成canvas
var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d');
// 创建属性节点
var anw = document.createAttribute("width");