Trong thẻ hình ảnh, nếu chúng tôi không cung cấp thuộc tính chiều rộng và chiều cao, chúng tôi sẽ không nhận được gì khi truy xuất chiều rộng và chiều cao của hình ảnh. Tôi đang sử dụng phần tử canvas để tải hình ảnh và tỷ lệ tương ứng. Để làm được điều này, tôi phải có kích thước hình ảnh thực tế. Có thể làm điều đó trong html 5 không?Chúng ta có thể nhận được kích thước hình ảnh thực thông qua canvas không?
Trả lời
Không hiểu đầy đủ câu hỏi của bạn.
Nhưng bạn có thể sử dụng javascript để có chiều rộng và chiều cao của hình ảnh.
và sau đó vượt qua nó vào
/Five arguments: the element, destination (x,y) coordinates, and destination
// width and height (if you want to resize the source image).
context.drawImage(img_elem, dx, dy, dw, dh);
khi vẽ hình ảnh trên vải.
hoặc kiểm tra điều này nếu nó giúp
nếu tôi hiểu bạn một cách chính xác, bạn có thể sử dụng phương pháp getComputedStyle
.
var object = document.getElementById(el);
var computedHeight = document.defaultView.getComputedStyle(object, "").getPropertyValue("width");
Các HTMLImageElement
có hai thuộc tính cho điều này, naturalWidth
và naturalHeight
. Sử dụng chúng.
Như trong:
var img = new Image();
img.addEventListener('load', function() {
// once the image is loaded:
var width = img.naturalWidth; // this will be 300
var height = img.naturalHeight; // this will be 400
someContext.drawImage(img, 0, 0, width, height);
}, false);
img.src = 'http://placekitten.com/300/400'; // grab a 300x400 image from placekitten
Đó là khôn ngoan để thiết lập nguồn duy nhất sau khi lắng nghe sự kiện được định nghĩa, xem thăm dò Phrogz về đó ở đây: Should setting an image src to data URL be available immediately?
Bạn không thể lấy chiều rộng/chiều cao trước khi hình ảnh đã được nạp vào.
Hãy thử một cái gì đó như:
// create new Image or get it right from DOM,
// var img = document.getElementById("myImage");
var img = new Image();
img.onload = function() {
// this.width contains image width
// this.height contains image height
}
img.src = "image.png";
Nhưng dù sao onload sẽ không cháy nếu hình ảnh đã được tải trước khi thực hiện kịch bản. Cuối cùng, bạn có thể nhúng tập lệnh vào html <img src="test.jpg" onload="something()">
- 1. jquery nhận kích thước hình ảnh
- 2. Nhận kích thước hình ảnh thực tế, sau khi đổi kích thước ảnh
- 3. iPhone: Nhận được kích thước của hình ảnh sau AspectFt
- 4. ImageMagick có thể trả lại kích thước hình ảnh không?
- 5. Chúng ta có thể tạo mảng tĩnh với kích thước là hằng số thời gian thực thi không?
- 6. Blackberry - cách đổi kích thước hình ảnh?
- 7. PHP GD - thay đổi kích thước khung hình/canvas nhưng không phải là hình ảnh thực tế
- 8. Xác định kích thước tệp hình ảnh + kích thước qua Javascript?
- 9. Android: nhận kích thước tệp hình ảnh trước khi chia sẻ hình ảnh (Intent.ACTION_SEND)
- 10. nhận được nhấp qua canvas html
- 11. Thực hiện di chuyển hình ảnh trên trang web thông qua CSS vs HTML5 Canvas
- 12. Kích thước hình ảnh Carrierwave
- 13. jQuery/javascript - Nhận kích thước hình ảnh trước khi tải
- 14. có được kích thước hình ảnh hiển thị thực tế trên NSImageView
- 15. Đồng vị + Lazyload: kích thước hình ảnh
- 16. Tại sao chúng ta có thể bỏ sockaddr vào sockaddr_in
- 17. có thể xem trước hình ảnh cục bộ trước khi tải chúng lên thông qua biểu mẫu không?
- 18. tải lên hình ảnh di động safari & kích thước của chúng
- 19. Kích hoạt tải hình ảnh chậm sau khi hình ảnh đã được thay đổi kích thước
- 20. UIImageView: Thay đổi kích thước thành kích thước hình ảnh?
- 21. Raphael JS thay đổi kích thước Canvas
- 22. Ảnh chụp màn hình của biểu mẫu có kích thước lớn hơn kích thước màn hình
- 23. Thay đổi kích thước hình ảnh trong Java để giảm kích thước hình ảnh
- 24. Thay đổi kích thước hình ảnh jpeg thành kích thước được chỉ định
- 25. iOS: làm thế nào để có được kích thước hình ảnh mà không cần mở nó
- 26. Lấy kích thước hình ảnh bằng Javascript trước khi hình ảnh được tải đầy đủ
- 27. Lưu trữ hình ảnh có kích thước lớn
- 28. Làm cách nào để hiển thị hình ảnh mà chúng tôi nhận được thông qua cuộc gọi Ajax?
- 29. Bản vẽ Canvas và màn hình Retina: có thể thực hiện được?
- 30. Nhận kích thước màn hình trên OpenCV
Nó có hỗ trợ tất cả trình duyệt hiện đại không – LittleFunny