Разделить файл изображения на два отдельных изображения

#javascript #node.js #backend

#javascript #node.js #серверная часть

Вопрос:

На моем сервере есть файл изображения высотой 50 000 пикселей. Я хочу сохранить 2 файла по 25 000 пикселей каждый (первая и вторая части исходного изображения)

Есть предложения о том, как это сделать?

Спасибо

Ответ №1:

Пакет sharp image может быть полезен для этого сценария. Более конкретно метод извлечения.

Я добавил ссылку на документацию, но вот возможная реализация для разделения изображения.

 const sharp = require("sharp");

const originalFilename = "image.jpg";


const image = sharp(originalFilename);

// this is just a placeholder
const imageWidth = 500;

image
  .extract({ left: 0, top: 0, width: imageWidth, height: 25000 })
  .toFile("top.jpg", function(err) {
    // Save the top of the image to a file named "top.jpg"
  });

image
  .extract({ left: 0, top: 25000, width: imageWidth, height: 25000 })
  .toFile("bottom.jpg", function(err) {
    // Save the bottom of the image to a file named "bottom.jpg"
  });
 

Я предполагаю, что вы можете повторно использовать исходный объект sharp image для повторного вызова функции извлечения. Если нет, вам может потребоваться снова вызвать конструктор sharp.

Комментарии:

1. Это работает, и это именно то, что мне было нужно. Спасибо!