PHP — Corrigindo rotação de fotos tiradas via celular
Ola Gente!
Você já observou que quando uma foto é tirada via celular a rotação dele “buga” ao ser redimensionada?
Isto se deve ao fato de que a foto vem rotacionada porem com um “metadado” que indica a rotação, isto faz com que ao se aberto no computador o computador corrige a rotação e você não nota que a imagem esta rotacionada.
Antes iremos consultar todos os metadados da foto utilizando a função “exif_read_data”:

Veja que uma variável de nome “Orientation” esta vindo com um número.
Este número indica a rotação, então basta utilizarmos a função “imageflip” e “imagerotate”, e com isto temos a função pronta:
<?
function ImageFixOrientation_JPG($filename)
{
$exif = exif_read_data($filename);
if (!empty($exif['Orientation']))
{
$image = imagecreatefromjpeg($filename);
switch ($exif['Orientation'])
{
case 1: // nothing
break;
case 2: // horizontal flip
imageflip($image, IMG_FLIP_HORIZONTAL);
break;
case 3: // 180 rotate left
$image = imagerotate($image, 180, 0);
break;
case 4: // vertical flip
imageflip($image, IMG_FLIP_VERTICAL);
break;
case 5: // vertical flip + 90 rotate right
imageflip($image, IMG_FLIP_VERTICAL);
$image = imagerotate($image, -90, 0);
break;
case 6: // 90 rotate right
$image = imagerotate($image, -90, 0);
break;
case 7: // horizontal flip + 90 rotate right
imageflip($image, IMG_FLIP_HORIZONTAL);
$image = imagerotate($image, -90, 0);
break;
case 8: // 90 rotate left
$image = imagerotate($image, 90, 0);
break;
}
imagejpeg($image, $filename, 100);
}
}
?>
Exemplo de uso:
ImageFixOrientation_JPG(“Fotos/Foto1.jpg”);
Por hoje é isto, queridos desenvolvedores! 👩💼
Até logo! 👋
Leia também
API Mágica: notificações Web Push no navegador com PHP
Web Push com a API Mágica em PHP puro: o navegador se inscreve, o seu site envia a notificação e a API conta o clique. Sem Composer e sem biblioteca.
IndexNow: avisando o Bing e o Yandex mais rápido
Como criar a chave do IndexNow e avisar Bing e Yandex das suas páginas novas com Node.js e PHP: as requisições, os erros reais e as armadilhas.
llms.txt: por que importa e como gerar em PHP
Por que o llms.txt importa para quem quer ser citado pela IA, e como gerar o seu em PHP puro lendo o sitemap.xml que voce ja tem.