2013-01-11 41 views
13

Làm thế nào để tìm ra chiều rộng hình ảnh base64 và chiều caoLàm thế nào để tìm ra chiều rộng hình ảnh base64 và chiều cao

<img id="thumb0" width="200" height="200" 
src="data:image/png;base64, ................"> 

rộng sở hữu hình ảnh và chiều cao không đổi như tôi cần phải chứng minh họ như móng ngón tay cái, nhưng mà như bản gốc các thuộc tính hình ảnh khác nhau.

Tôi cần có chiều cao và chiều rộng hình ảnh ban đầu.

Giả sử chiều cao hình ảnh ban đầu của tôi và chiều rộng là 750 X 500

tôi đã cố gắng như thế này nhưng nhận được chiều rộng và chiều cao hữu

$("#thumb0").width(); 

giá trị là .

Vui lòng giúp cách lấy chiều rộng và chiều cao gốc của hình ảnh.

+1

hình ảnh (trên Firefox ít nhất) có một tài sản naturalWidth/chiều cao, do đó bạn có thể sử dụng img.naturalWidth để có được chiều rộng ban đầu –

+0

cố gắng trong firebug trong firefox nó nói không xác định – vvr02

+1

Nó làm việc cho tôi trong cả Firefox và Chrome .. Lưu ý rằng hình ảnh phải được tải hoàn toàn để sử dụng các thuộc tính naturalWidth/naturalHeight .. –

Trả lời

16

Bạn có thể xây dựng một yếu tố hình ảnh và nhận được kích thước của nó:

var img = new Image(); 
img.src = $('#thumb0').attr('src'); 
var originalWidth = img.width; 
+3

Nhưng tôi nghĩ rằng nó sẽ mất thời gian cho hình ảnh lớn và chúng ta cần phải tiêu diệt sau khi tạo ra? – vvr02

+0

Không, nó sẽ rất nhanh, đặc biệt là không có yêu cầu phát hành. Và bạn không có sự hủy diệt để làm: ngay khi bạn rời khỏi hàm mà img được khai báo, nó được làm sạch. –

+0

@ dystroy Nó không hoạt động trong android ~~~, bất kỳ cách nào để làm cho nó hoạt động? – MichaelLuthor

6

Các Image() constructor for HTMLImageElements đề cập trong câu trả lời dystroy là đúng cách để đi, nhưng có một caveat: Các nhà xây dựng là thực sự không đồng bộ! Do đó, bạn có thể gặp phải hành vi không mong muốn trong một số trình duyệt nhất định; từ các thử nghiệm giới hạn của tôi, mã của dystroy sẽ hoạt động 100% thời gian trong Chrome, nhưng đôi khi chỉ trong Firefox và Safari. Không biết về người khác.

Cách đúng để làm điều đó có vẻ là with an onload handler, như trong:

var img = new Image(); 
img.src = some_base64_image_source; 
console.log(img.width);  // This might print out 0! 
img.onload = function() { 
    console.log(img.width); // This will print out the width. 
} 
Các vấn đề liên quan