#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. Это работает, и это именно то, что мне было нужно. Спасибо!