2013-06-03 32 views
8

Tôi đang tạo một thư viện hình ảnh với jquery. Có khả năng nào để tính toán liệu hình ảnh là cảnh quan hay chân dung sử dụng jquery?Cách tính hình ảnh có phong cảnh hay chân dung

Cảm ơn sự hỗ trợ của bạn.

+0

Kiểm tra tỷ lệ chiều cao/chiều rộng? Bạn đã thử cái gì? – JNF

+2

'nếu chiều rộng> chiều dài thì cảnh quan khác chân dung' –

+0

@Christian Mark Cảm ơn Christian Mark – geovani075

Trả lời

17

Bạn chỉ có thể so sánh chiều rộng và chiều cao của hình ảnh.

var someImg = $("#someId"); 
if (someImg.width() > someImg.height()){ 
    //it's a landscape 
} else if (someImg.width() < someImg.height()){ 
    //it's a portrait 
} else { 
    //image width and height are equal, therefore it is square. 
} 
2

Dưới hàm javascript sẽ trở lại với định hướng phù hợp nhất

function get_orientation(src){ 

img = new Image(); 
img.src = src; 
var width = img.width; 
var height = img.height; 
height = height + height // Double the height to get best 
//height = height + (height/2) // Increase height by 50% 

if(width > height) { 
return "landscape"; 
} else { 
return "portrait"; 
} 

} 
+0

Điều này giả định rằng hình ảnh đã được tải trong giao diện người dùng. Chúng tôi có nên đợi sự kiện tải hình ảnh kích hoạt trước khi tính tỷ lệ? –

+1

Tại sao "chiều cao = chiều cao + chiều cao // Tăng gấp đôi chiều cao để có được tốt nhất"? –

0

này đã làm việc cho tôi, bằng cách sử dụng chiều cao tự nhiên/chiều rộng để có được các tính chất ban đầu.

 function imageOrientation(src) { 

      var orientation, 
      img = new Image(); 
      img.src = src; 

      if (img.naturalWidth > img.naturalHeight) { 
       orientation = 'landscape'; 
      } else if (img.naturalWidth < img.naturalHeight) { 
       orientation = 'portrait'; 
      } else { 
       orientation = 'even'; 
      } 

      return orientation; 

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