terça-feira, 1 de novembro de 2016

Porta-Retratos Digital Caseiro III (A Mágica)

O CPAN nunca decepciona: há um módulo para rotacionar as imagens conforme os metadados do JPEG. As máquinas fotográficas mais modernas gravam nos arquivos JPEG a orientação das fotos e o módulo Imager::ExifOrientation permite carregar a imagem já virada no sentido correto para exibir na tela.

use Imager::ExifOrientation;

sub next_photo {
  my $index=int(rand($#file_list));
  my $filename=$file_list[$index];
  
  my $image = Imager::ExifOrientation->rotate(path => $filename);
  scale($photo_width, $photo_height, $image);
  $photo->configure(-file=>'tmp.jpg');
  
  $filename=$file_list[($index+1)%($#file_list+1)];
  
  $image = Imager::ExifOrientation->rotate(path => $filename);
  scale($thumb_width, $thumb_height, $image);
  $thumb->configure(-file=>'tmp.jpg');
  
  $main->update();
}
A mágica tem seus limites: se o arquivo não contiver a informação de orientação, a imagem será carregada assim como está no arquivo.

Nenhum comentário: