node 图片压缩小记

2018-01-15  本文已影响0人  moyi_gg

前言

由于有需要在electron平台上做图片压缩,系统要求为win8.1和macOS,因此有了这篇文章。对于macOS各种库基本没问题,本文主要讲的是window下electron相关的native module的安装过程,包括其中碰到的问题。

使用平台

第三方库

node-images (windows未成功)

直接下载npm install images, 库会根据不同的node平台下载编译好的.node文件,但是由于我是希望在electron平台下使用,因此需要自己重新编译,最后一步node-gyp rebuild --runtime=electron --target_arch=ia32 --target=1.6.6 --disturl=https://atom.io/download/atom-shell,编译为electron能使用的包

  $ git clone https://github.com/zhangyuanwei/node-images
  $ cd node-images
  $ git submodule init
  $ git submodule update
  $ cd gyp
  $ sh third-party.sh
  $ cd ..
  $ npm install
  $ node-gyp rebuild

碰到问题:

node-canvas

1.x 版本不支持jpeg转换 lib需要换到2.0版本
因为需要重新打包为32位的electron版本,对应库文件需要安装32位的,libjpeg-turbo、GTK,否则重新编译node文件的时候就会报错

安装过程:

碰到问题:

  let buffers = [];
  canvas.createJPEGStream({
    quality: 80,
  }).on('data', function(data) {
    console.log('rcvd', data.length); // <-- this always prints 4096, even for the last buffer!
    buffers.push(data);
  }).on('end', function() {
    // fs.writeFileSync(path.join(app.getPath('userData'), './out.jpeg'), Buffer.concat(buffers));
    uploadPic(Buffer.concat(buffers));
  }).on('error', function(err) {
    console.log(err);
  });
 
上一篇 下一篇

猜你喜欢

热点阅读