Eu desenvolvi um aplicativo da web laravel que tem a função de aceitar imagens enviadas pelos usuários e depois exibi-las. Eu havia encontrado um problema durante o teste, pois as fotos carregadas usando telefones celulares giravam 90 graus no sentido anti-horário. Usei a intervenção de imagem para resolver esse problema. Mas como eu estou mostrando uma visualização da imagem carregada para os usuários usando javascript, as imagens são giradas 90 graus, mas quando eu salvo a imagem, ela se torna adequada. Meu código javascript é
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");
});
alguém pode me ajudar a orientar adequadamente a imagem de visualização editando o código acima para que a orientação da imagem seja alterada quando necessário.
Respostas:
Que tal apenas girar a imagem com CSS?
Edit: Bem, depois de um breve mergulho no mundo dos dados EXIF, acho que posso ter uma solução para você. Peguei emprestada a função getOrientation () de Ali , como sugeriu o @Nick, e corrigi a orientação com CSS da seguinte maneira:
violino
E se você precisar de arquivos de exemplo para testá-lo, obtenha-os aqui .
Edit: Posicionando a imagem carregada em uma imagem
<img>
de fundo da div: https://jsfiddle.net/ynzvtLe2/2/fonte
Isso deve funcionar. Aqui, obtenho a orientação original do arquivo de imagem e, em seguida, construo uma tela com a correção de rotação apropriada. Em seguida, definimos a imagem girada corretamente como visualização.
Certifique-se de incluir esta biblioteca primeiro: https://github.com/hMatoba/piexifjs
Eu recebi ajuda da documentação: https://readthedocs.org/projects/piexif/downloads/pdf/latest/
fonte