有谁知道任何免费的脚本,尽可能压缩JPG,GIF和PNG文件?上传前压缩客户端图像
25
A
回答
10
您可能可以用canvas
调整图像大小,并使用dataURI将其导出。虽然不确定压缩。
4
我在这里读到一个实验:http://webreflection.blogspot.com/2010/12/100-client-side-image-resizing.html
的理论是,你可以用帆布上传之前调整客户端上的图像。原型示例似乎只适用于最近的浏览器,虽然有趣的想法...
但是,我不确定使用画布压缩图像,但您可以调整它们的大小。
51
我只是开发了一个名为JIC来解决这个问题一个JavaScript库。它允许你在客户端压缩jpg和png 100%,并且不需要外部库!
你可以在这里尝试演示:http://makeitsolutions.com/labs/jic 这里获得来源:https://github.com/brunobar79/J-I-C
希望你喜欢它。
4
我迟到了,但这个解决方案对我来说工作得非常好。基于this library,您可以使用此LIK一个功能 - 设置图像质量,最大宽度,和输出格式(JEPG,PNG):
function compress(source_img_obj, quality, maxWidth, output_format){
var mime_type = "image/jpeg";
if(typeof output_format !== "undefined" && output_format=="png"){
mime_type = "image/png";
}
maxWidth = maxWidth || 1000;
var natW = source_img_obj.naturalWidth;
var natH = source_img_obj.naturalHeight;
var ratio = natH/natW;
if (natW > maxWidth) {
natW = maxWidth;
natH = ratio * maxWidth;
}
var cvs = document.createElement('canvas');
cvs.width = natW;
cvs.height = natH;
var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0, natW, natH);
var newImageData = cvs.toDataURL(mime_type, quality/100);
var result_image_obj = new Image();
result_image_obj.src = newImageData;
return result_image_obj;
}
3
如果你正在寻找一个库,进行客户端 - 侧面图像压缩,你可以检查一下:compress.js。这基本上可以帮助您纯粹用JavaScript压缩多个图像并将它们转换为base64字符串。您可以选择以MB为单位设置最大尺寸以及首选的图像质量。
相关问题
- 1. 未压缩前端压缩图像
- 2. 在客户端上传之前进行文件压缩
- 3. angularjs在上传前压缩图像
- 4. 客户端数据压缩/解压缩?
- 5. ServiceStack客户端压缩
- 6. 客户端文件压缩
- 7. 在将图像上传到Firebase存储之前压缩图像
- 8. 压缩和RESCALE上传的图像
- 9. 上传压缩图像大小-PHP
- 10. 上传压缩图像文件大小?
- 11. 为IE6客户端禁用GZIP压缩
- 12. 在CXF客户端启用gzip压缩
- 13. IBM WebSphere JAX-RPC客户端压缩
- 14. 在客户端获取压缩文件
- 15. 在客户端压缩文件
- 16. 为客户端部署压缩node_modules
- 17. 使用javascript压缩xhtml客户端?
- 18. Javascript客户端数据压缩
- 19. 的Android上传图像到Google云端硬盘无压缩
- 20. 如何在Laravel上传之前压缩图像?
- 21. 上传到FirebaseStorage之前的图像压缩
- 22. 在上传到服务器之前压缩视频和图像
- 23. Apache FTP客户端在传输时是否压缩文件?
- 24. 上传时压缩图片
- 25. 在上传前调整客户端上的图片
- 26. laravel图像干预是压缩用户上传图像的好方法吗?
- 27. 在上传之前缩放图像
- 28. 从服务器发送压缩的图像,并在客户端解压缩他们
- 29. 如何使用客户端从服务器获取的Javascript压缩图像?
- 30. FTP客户端在上传之前上传并在上传之后在服务器上解压
所有这三个都是压缩格式。进一步压缩现有的图像会导致质量损失。 – Charles 2011-04-09 19:45:06
你对这个“smushit.com”有什么评价? – xtremist 2011-04-09 20:07:20
@Charles不一定,大多数人都懒惰地压缩他们的图像。所以无损压缩可能会大大减少大多数图像的大小。 – 2017-05-02 11:34:51