Подтвердить что ты не робот

Получите ширину и высоту изображения в node.js

Можно ли получить ширину и высоту изображения в node.js(на стороне сервера, а не на стороне клиента)? Мне нужно найти ширину и высоту изображения в библиотеке node.js, которую я пишу.

4b9b3361

Ответ 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, которая может определять размеры изображений.

https://github.com/calipersjs/calipers

Ответ 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){

        }
      });