Можно ли получить ширину и высоту изображения в node.js(на стороне сервера, а не на стороне клиента)? Мне нужно найти ширину и высоту изображения в библиотеке node.js, которую я пишу.
Получите ширину и высоту изображения в node.js
Ответ 1
Да, это возможно, но вам нужно будет установить GraphicsMagick или ImageMagick.
Я использовал оба варианта, и я могу рекомендовать GraphicsMagick намного быстрее.
После установки как программы, так и модуля вы сделаете что-то подобное, чтобы получить ширину и высоту.
gm = require('gm');
// obtain the size of an image
gm('test.jpg')
.size(function (err, size) {
if (!err) {
console.log('width = ' + size.width);
console.log('height = ' + size.height);
}
});
Ответ 2
Установка GraphicsMagick
или ImageMagick
вовсе не требуется, определение размеров изображения так же просто, как просмотр заголовка. image-size
- это чистая реализация javascript указанной функции, которая очень проста в использовании.
https://github.com/netroy/image-size
var sizeOf = require('image-size');
sizeOf('images/funny-cats.png', function (err, dimensions) {
console.log(dimensions.width, dimensions.height);
});
Ответ 3
https://github.com/nodeca/probe-image-size
Более интересной проблемой является "как определить размер изображения без полной загрузки файла с удаленного сервера". probe-image-size
поможет. Конечно, он также поддерживает локальные потоки.
Он написан на чистом JS и не нуждается в каких-либо тяжелых зависимостях (ImageMagick и т.д.).
Ответ 4
Calipers - еще одна чистая библиотека Javascript, которая может определять размеры изображений.
Ответ 5
var sizeOf = require('image-size');
sizeOf(my_file_item.completeFilename, function (err, dimensions) {
try{
if(!err){
let image_dimensions = dimensions || "";
let width = 200; // we want 200
let height = parseInt(width/(image_dimensions.width/image_dimensions.height));
}else{
}
// console.log(ex);
}catch(ex){
}
});