代码之家  ›  专栏  ›  技术社区  ›  PvDev

如何在节点js中将图像分割成多个部分?

  •  1
  • PvDev  · 技术社区  · 6 年前

    image-slice 使用node js分割成多个部分。

    我试着安装 npm i image-to-slices sudo port install cairo , npm i canvas brew install pkg-config cairo pango libpng jpeg giflib 但仍然显示错误 require node-canvas 在服务器端node.js

     var imageToSlices = require('image-to-slices');
    
     exports.sliceImage=(request, response)=>{
    
    
    var lineXArray = [100, 200];
    var lineYArray = [100, 200];
    var source = './public/images/Bitmap001.png'; // width: 300, height: 300
    
     imageToSlices(source, lineXArray, lineYArray, {
     saveToDir: './public/images/bit001.png'
     }, function() {
     console.log('the source image has been sliced into 9 sections!');
      });
    
    
      }//sliceImage
    

    控制台输出错误:

     Error: Require node-canvas on the server-side Node.js
    at ImageClipper.__createImage (/Users/parameshv/pyrky_nodejs/node_modules/image-clipper/lib/clipper.js:456:13)
    at ImageClipper.loadImageFromUrl (/Users/parameshv/pyrky_nodejs/node_modules/image-clipper/lib/clipper.js:83:20)
    at ImageClipper.image (/Users/parameshv/pyrky_nodejs/node_modules/image-clipper/lib/clipper.js:120:10)
    at imageClipper (/Users/parameshv/pyrky_nodejs/node_modules/image-clipper/lib/index.js:36:15)
    at ImageToSlices.slice (/Users/parameshv/pyrky_nodejs/node_modules/image-to-slices/lib/image-to-slices.js:212:3)
    at ImageToSlicesFactory (/Users/parameshv/pyrky_nodejs/node_modules/image-to-slices/lib/index.js:22:17)
    at exports.sliceImage (/Users/parameshv/pyrky_nodejs/app/controllers/ApiController.js:843:1)
    at Layer.handle [as handle_request] (/Users/parameshv/pyrky_nodejs/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/parameshv/pyrky_nodejs/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/Users/parameshv/pyrky_nodejs/node_modules/express/lib/router/route.js:112:3)
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   maxpaj    6 年前

    我在代码中发现你可以指定 canvas clipperOptions 在配置中。

    试试这个:

    var imageToSlices = require('image-to-slices');
    var lineXArray = [100, 200];
    var lineYArray = [100, 200];
    var source = './public/images/Bitmap001.png'; // width: 300, height: 300
    
    imageToSlices(source, lineXArray, lineYArray, {
        saveToDir: '.',
        clipperOptions: {
            canvas: require('canvas')
        }    
    }, function() {
        console.log('the source image has been sliced into 9 sections!');
    });
    
    推荐文章