有谁知道尽可能多地压缩 JPG、GIF 和 PNG 文件的任何免费脚本?
上传前在客户端压缩图像
IT技术
javascript
jquery
jquery-plugins
2021-02-25 02:44:15
5个回答
我刚刚开发了一个名为 JIC 的 javascript 库来解决这个问题。它允许您使用 javascript 在客户端 100% 压缩 jpg 和 png,并且不需要外部库!
您可以在此处尝试演示:http : //makeitsolutions.com/labs/jic 并在此处获取源代码:https : //github.com/brunobar79/JIC
您可以canvas
使用 dataURI调整图像大小并导出它。不过不确定压缩。
看看这个:在 HTML5 画布中调整图像大小
如果您正在寻找一个库来执行客户端图像压缩,您可以查看:compress.js。这将基本上帮助您纯粹使用 JavaScript 压缩多个图像并将它们转换为 base64 字符串。您可以选择以 MB 为单位设置最大大小以及首选图像质量。
我参加聚会迟到了,但是这个解决方案对我很有效。基于这个库,你可以使用这样的函数 - 设置图像、质量、最大宽度和输出格式(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;
}
我在这里读到了一个实验:http : //webreflection.blogspot.com/2010/12/100-client-side-image-resizing.html
理论上,您可以在上传之前使用画布调整客户端上的图像大小。原型示例似乎只适用于最近的浏览器,不过这个想法很有趣……
但是,我不确定是否使用画布来压缩图像,但您当然可以调整它们的大小。
其它你可能感兴趣的问题