EDIT: Phương pháp này rất hữu ích nếu bạn muốn lấy kích thước tính toán của một hình ảnh sau khi được trả lại trên một trang, nhưng trước khi bạn thay đổi kích thước của nó với tỉ lệ. Nếu bạn chỉ muốn kích thước ban đầu của hình ảnh, hãy sử dụng các phương pháp trên.
Hãy thử viết tỷ lệ của hình ảnh thành thuộc tính dữ liệu khi bạn mở rộng quy mô. Sau đó, bạn có thể dễ dàng chia các thứ nguyên mới theo thuộc tính tỷ lệ đó để truy lục kích thước ban đầu. Nó có thể trông giống như sau:
// Set the scale data attribute of the image
var scale = 2;
img.dataset.scale = scale;
...
// Later, retrieve the scale and calculate the original size of the image
var s = img.dataset.scale;
var dimensions = [img.width(), img.height()];
var originalDimensions = dimensions.map(function(d) {return d/parseFloat(s)});
Hoặc, bạn chỉ có thể truy xuất tỷ lệ của hình ảnh trực tiếp bằng jQuery và regex.
var r = /matrix\(([\d.]+),/;
try {
var currentTransform = $swiper.css('transform');
var currentScale = currentTransform.match(r)[1];
}
// Handle cases where the transform attribute is unset
catch (TypeError) {
currentScale = 1;
}
Điều này tạo cảm giác trực quan hơn với tôi hơn là tạo hình ảnh hoàn toàn mới và dựa vào bộ nhớ đệm của trình duyệt để tải nhanh.
Nguồn
2016-11-25 15:34:00
@bugster Làm cách nào chúng tôi có thể triển khai điều này để có được kích thước hình ảnh được chia tỷ lệ ban đầu trong một trang web? Nếu không có quyền truy cập vào trang web, làm cách nào để có thể chụp ảnh gốc? Hãy xem xét url hình ảnh ban đầu là một liên kết công khai. –