2012-09-22 36 views
31

Có thể lấy chiều rộng và chiều cao của hình ảnh trong node.js (ở phía máy chủ, không phải phía máy khách) không? Tôi cần phải tìm chiều rộng và chiều cao của hình ảnh trong thư viện node.js mà tôi đang viết.Lấy chiều rộng và chiều cao của hình ảnh trong node.js

+1

Điều này có vẻ trùng lặp (và ai đó đã tìm thấy câu trả lời): http://stackoverflow.com/questions/5530946/opening-images-on-nodejs-and-finding-out-width-height –

Trả lời

27

Có điều này là có thể nhưng bạn sẽ cần phải cài đặt GraphicsMagick hoặc ImageMagick.

Tôi đã sử dụng cả hai và tôi có thể đề xuất GraphicsMagick nhanh hơn rất nhiều.

Khi bạn đã cài đặt cả hai chương trình và nó là module bạn sẽ làm một cái gì đó như thế này để có được chiều rộng và chiều cao.

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); 
    } 
}); 
+0

Trong trường hợp này, làm cách nào tôi có thể viết một hàm trả về 'size.width' cho một hình ảnh nhất định và gọi hàm đó bên ngoài cuộc gọi lại? –

+2

Ngoài ra, đây là câu hỏi có liên quan: http://stackoverflow.com/questions/12540405/how-can-i-specify-the-order-in-which-node-js-functions-are-evaluated –

+0

Tôi đã cung cấp trả lời cho câu hỏi khác mà bạn đã liên kết. – saeed

78

Cài đặt GraphicsMagick hoặc ImageMagick không được ở tất cả các cần thiết, xác định kích thước của một hình ảnh dễ dàng như nhìn vào tiêu đề. image-size là một cài đặt javascript tinh khiết cho biết tính năng rất dễ sử dụng.

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); 
}); 
+8

Đây phải là câu trả lời được chấp nhận đơn giản vì gm/im có nhiều chi phí hơn mức cần thiết cho tác vụ này. –

+3

Có [lỗi ở kích thước hình ảnh] (https://github.com/netroy/image-size/issues/37). Tôi chỉ trải nghiệm nó trong sản xuất. GraphicsMagick không có lỗi tương tự. – paldepind

3

https://github.com/nodeca/probe-image-size

vấn đề thú vị hơn là "làm thế nào để phát hiện kích thước hình ảnh mà không cần tải về tập tin đầy đủ từ máy chủ từ xa". probe-image-size sẽ giúp ích. Nguyên nhân, nó cũng hỗ trợ các luồng cục bộ.

Được viết bằng JS thuần túy và không cần bất kỳ phụ thuộc nặng nào (ImageMagick, v.v.).

0
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){ 

     } 
     }); 
Các vấn đề liên quan