Как разрезать изображение на несколько частей в узле JS?

1

Я попробовал использовать image-slice для разбивки на несколько частей с помощью узла js.

Я попытался установить npm я image-to-slices, sudo port install cairo, npm я 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)
  • 0
    Попробуйте объяснить, чего вы хотите достичь. Это очень помогает дать ценный ответ.
  • 0
    @maxpaj только что добавил код, чтобы нарезать изображение на несколько изображений, при запуске файла js узла он показывает ошибку ..
Показать ещё 6 комментариев
Теги:
slice
cairo
node-canvas

1 ответ

1
Лучший ответ

Копаясь в коде, я обнаружил, что вы можете указать, какой 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!');
});
  • 1
    Спасибо maxpaj, теперь все работает нормально ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню