He desarrollado una aplicación web laravel que tiene la función de aceptar imágenes cargadas por los usuarios y luego mostrarlas. Me encontré con un problema durante las pruebas, ya que las fotos cargadas usando teléfonos móviles giraban 90 grados en sentido antihorario. Utilicé la intervención de imágenes para resolver ese problema. Pero como estoy mostrando una vista previa de la imagen cargada a los usuarios que usan JavaScript, las imágenes se rotan 90 grados, pero cuando guardo la imagen se vuelve correcta. Mi código javascript es
function imagePreview(input,elm) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$(elm).css("background-image","url('"+e.target.result+"')");
}
reader.readAsDataURL(input.files[0]);
}
}
$("#settings_img").on("change",function(){
imagePreview(this,"#settings_img_elm");
});
¿Alguien puede ayudarme a orientar correctamente la imagen de vista previa editando el código anterior para que la orientación de la imagen cambie cuando sea necesario.
Respuestas:
¿Qué tal simplemente girando la imagen con CSS?
Editar: Bueno, después de una breve inmersión en el mundo de los datos EXIF, creo que podría tener una solución para usted. Tomé prestada la función getOrientation () de Ali , como sugirió @Nick, y luego simplemente corregí la orientación con CSS de la siguiente manera:
violín
Y si necesita archivos de ejemplo para probarlo, consígalos aquí .
Editar: Colocar la imagen cargada en una imagen de fondo en
<img>
lugar de la div: https://jsfiddle.net/ynzvtLe2/2/fuente
Esto debería funcionar. Aquí obtengo la orientación original del archivo de imagen y luego construyo un lienzo con la corrección de rotación adecuada. Luego configuramos la imagen rotada correctamente como vista previa.
Asegúrese de incluir esta biblioteca primero: https://github.com/hMatoba/piexifjs
Obtuve ayuda de la documentación: https://readthedocs.org/projects/piexif/downloads/pdf/latest/
fuente