您的位置:首页 > 素材教程 > 详情

node图片压缩库-怎么用JavaScript在线压缩图片

原创:素材网 2 年前

node压缩文件夹之compressing

经过了一段时间的打包(即熟悉的 npm run build )、压缩(通过压缩工具压成 .zip 包)、上线(把压缩包发给上线人员),终于,发现了有优化的空间,哈哈。

什么?项目上线还属于人工操作?利用压缩包的方式?还没用到自动化部署?

打扰了,打扰了。

找了一下,发现了一个好用又方便的包 compressing ,支持压缩文件夹,支持 zip 压缩。

程序能做到压缩,为啥还要自己手动去压缩,于是,就有了下面的故事。

在自动压缩这个点上,问题是解决了的。

于是,以后上线的流程变成了:

打包( npm run build && npm run zip )、上线(发送 zip 压缩包给上线人员)。

怎么用JavaScript在线压缩图片

主要用了两个html5的 API,一个file,一个canvas,压缩主要使用cnavas做的,file是读取文件,之后把压缩好的照片放入内存,最后内存转入表单下,随着表单提交。

照片是自己用单反拍的,5M多,压缩下面3张分别是600多kb,400多kb,300kb的最后那张失真度很大了,压缩效率蛮高的。

<!DOCTYPE html>

<html><head> <meta charset="utf-8"/> <title>File API Test</title> <script type="text/javascript" src="js/jquery-1.11.0."></script> <script type="text/javascript" src="js/"></script> <style> #test{ display: none; } </style></head><body><input type="file" id="fileImg" ><form> <img src="" id="test" alt=""></form><script> function handleFileSelect (evt) { // var filebtn = (id); // (filebtn); // var files = ; // (); // (files); var files = ; for (var i = 0, f; f = files[i]; i++) { // Only process image files. if (!f.('image.*')) { continue; } var reader = new FileReader(); // Closure to capture the file information. = (function(theFile) { return function(e) { // Render thumbnail. // ([0]); // (e.target); (e.); var i = ("test"); i.src = ; ($(i).width()); ($(i).height()); $(i).css('width',$(i).width()/10+'px'); //$(i).css('height',$(i).height()/10+'px'); ($(i).width()); ($(i).height()); var quality = 50; i.src = (i,quality).src; (i.src); i. = "block"; }; })(f); // Read in the image file as a data URL. (f); } } ('fileImg').addEventListener('change', handleFileSelect, false);</script></body></html>

var jic = { /** * Receives an Image Object (can be JPG OR PNG) and returns a new Image Object compressed * @param {Image} source_img_obj The source Image Object * @param {Integer} quality The output quality of Image Object * @return {Image} result_image_obj The compressed Image Object */ compress: function(source_img_obj, quality, output_format){ var mime_type = "image/jpeg"; if(output_format!=undefined && output_format=="png"){ mime_type = "image/png"; } var cvs = ('canvas'); //naturalWidth真实图片的宽度 = source_img_; = source_img_; var ctx = ("2d").drawImage(source_img_obj, 0, 0); var newImageData = (mime_type, quality/100); var result_image_obj = new Image(); result_image_ = newImageData; return result_image_obj; }, function ****(***)

如何用nodejs压缩文件,生成tar包

你好,

我不知道如何直接使用代码逻辑生成tar包,但我可以给你提供一个使用调用Linux命令生成tar包的方法。

首先,在npm中有一个叫做shelljs的包,在项目中安装它:

npm i --save shelljs

然后,在执行打包任务的js文件中使用它:

var shell = require('shelljs');

if (('tar -zvcf 文件名. 被打包的文件(夹)').code !== 0) {

  ('Error: ...');

  (1);

}

这样就可以在当前目录生成一个“文件名.”的压缩包了,而“文件名”和“被打包的文件(夹)”都可以通过参数的形式进行传递。

好了,更多信息可以github上搜索shelljs,希望能解决你的问题。

< 上一篇 jpg图片怎么压缩到1mb-如何将照片压缩到1mb以下? 下一篇 > node 压缩文件-nodejs压缩服务器无法解压
相关推荐
独特的公益海报-公益海报有哪些风格
儿童海报制作简单-六一儿童节的宣传海报怎么做啊
春节海报-春节海报设计理念有哪些?
广府特色美食海报小学生怎么画?小学生海报怎么画
有没有制作海报的手机软件-在手机上做海报用什么软件好
蛋糕店宣传海报手绘-蛋糕活动海报怎么设计图片
最新模板
最新素材