Você tira uma foto na vertical. Fica certa no celular, certa na galeria, certa quando você manda para si mesmo por e-mail. Aí você envia para algum lugar e ela aparece deitada. Nada girou a imagem. Os pixels nunca se moveram. O que mudou foi quem estava lendo.
O sensor de uma câmera é um retângulo fixo, parafusado ao corpo numa orientação. Quando você vira o celular para fazer uma foto horizontal, o sensor não vira junto — ele captura o mesmo retângulo de sempre.
Então como a foto sai na posição certa? O celular detecta como estava sendo segurado e anota isso. Não reorganizando os pixels, o que custaria tempo e bateria, mas guardando um bilhetinho nos metadados do arquivo: a etiqueta de orientação EXIF.
A etiqueta tem um de oito valores. Em bom português, ela diz algo como “gire 90° no sentido horário antes de exibir” ou “esta já está em pé”. Os dados de pixel são idênticos nos dois casos; só a instrução muda.
Todo programa que abre a imagem decide se obedece à instrução. A maior parte do software moderno obedece. Alguns não — e muitas esteiras de envio removem metadados por privacidade ou tamanho, o que apaga a instrução por completo.
O resultado é uma foto que é ao mesmo tempo certa e deitada, dependendo de quem olha:
É por isso que o problema parece aleatório. Não é: é um desacordo entre programas sobre um bilhete que sempre esteve ali.
Remover metadados costuma ser bom. O EXIF carrega coordenadas de GPS, o modelo do aparelho, o horário exato — informação que a maioria não pretende publicar junto com uma foto. Muitos serviços removem por padrão, e fazem certo.
Mas a etiqueta de orientação mora no mesmo bloco das coordenadas de GPS. Remova o bloco e a instrução de rotação vai junto. A foto passa a ser exibida na orientação bruta dos pixels, que é o que o sensor capturou: deitada, se você segurou o celular deitado.
O jeito confiável é girar os próprios dados de imagem, para que os pixels fiquem em pé e a etiqueta se torne desnecessária. Às vezes chamam isso de “assar” a rotação. Depois disso todos os programas concordam, porque não sobrou nada sobre o que discordar.
Um cuidado: alguns editores “giram” mudando a etiqueta EXIF em vez de mover pixels — rápido, sem perdas e completamente inútil aqui, porque recria exatamente a situação da qual você quer escapar. O teste é enviar o resultado para algum lugar que remova metadados e ver se continua em pé.
Uma foto deitada é um incômodo. Cem delas, metade horizontais e metade verticais, todas misturadas, é um problema de verdade — porque você não pode aplicar uma única rotação ao conjunto. Cada foto precisa da rotação que a própria etiqueta indica.
Qualquer método que gire conforme a etiqueta existente de cada arquivo lida bem com um lote misto. Aplicar um “gire tudo 90°” conserta metade e quebra a outra metade.
As dimensões aparecem trocadas. Uma foto vertical informa 4032 × 3024 em vez de 3024 × 4032. Essa é a dimensão honesta dos pixels; a etiqueta ia corrigir na hora de exibir.
A miniatura está em pé e a imagem completa não. O EXIF pode embutir uma prévia pequena, e essa prévia pode já estar girada. O visualizador mostra a miniatura certa e o original deitado.
Certa num navegador e errada em outro. Os navegadores trataram a orientação de formas diferentes ao longo dos anos, em especial entre imagens de fundo CSS e tags <img>.
Se você prepara fotos para um site, um serviço de impressão ou qualquer coisa em que não vai ver o resultado na hora, assar a rotação antes de entregar o arquivo compensa o passo extra toda vez.