EDIT: Este método es útil si desea recuperar el tamaño calculado de una imagen después de que se hace en una página, pero antes de transformar su tamaño con escala. Si solo desea el tamaño original de la imagen, use los métodos anteriores.
Intente escribir la escala de la imagen en un atributo de datos cuando lo escala. Luego puede dividir fácilmente las nuevas dimensiones con ese atributo de escala para recuperar el tamaño original. Podría ser algo como esto:
// 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)});
Como alternativa, sólo puede recuperar la escala de la imagen directamente usando jQuery y expresiones regulares.
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;
}
Esto tiene sentido más intuitivo para mí que la creación de una imagen completamente nueva y confiando en la memoria caché del navegador para que se cargue rápidamente.
@bugster ¿Cómo podemos implementar esto para obtener el tamaño original de una imagen escalada en un sitio web? Si no hay acceso al sitio web, ¿cómo es posible tomar la imagen original? Considere que la URL de la imagen original es un enlace público. –