Uma das coisas que mais gosto de fazer é programar galerias de imagens.
O que me pedem para fazer consiste em fazer um gestor de ficheiros, com pré-visualização das imagens, poder organizar a ordem da galeria e até legendar. Não é nada de outro mundo quando se trata de programar isto tudo.
O interessante da coisa está na altura quando nos pedem para colocar uma descrição ou legendar o ficheiro. Existem várias técnicas para o efeito. A mais comum, julgo eu, é gravar um ficheiro de texto que relacione de alguma forma a imagem á legenda. Alguns até põem em base de dados. Curiosamente a biblioteca GD ( para manipulação de imagens ) já fornece um par de funções para editar Metadata nos ficheiros… JPG.
Até é normal até os clientes começarem a dizer coisas do tipo “mas a minha máquina só dá para PNG’s” porque razão eu tenho de mandar os ficheiros em JPG para poder legendá-los?
Até á data não tinha resposta em termos de programação porque nas minhas pesquisas revelou-se que quase ninguém no mundo PHP conseguia escrever Metadata nos ficheiros sem recurso a bibliotecas externas ( Imagemagick por exemplo ). Isto no caso do GIF.
O GIF já é um formato bastante velhinho e está a cair em desuso na web, para dar lugar ao PNG.
Nenhuma máquina digital tira fotos em GIF ( creio eu ) e anexa metadata ao ficheiro, daí que não há muito interesse nisso.
Com a versão GIF89a é possível colocar texto nalguma parte do ficheiro através do “Comment Block”.
Com o PHP consegui obter o seguinte:
<?php
$comentario = “o painel de controlo é meu”;$file = “week.gif”;
$fp = fopen($file,”rb+”);
fseek($fp,-2,SEEK_END);
$str = chr(33).chr(254) . chr(“&H” . dechex(strlen($comentario))) . $comentario . chr(0);
fwrite($fp,$str);
fclose($fp);
?>
Não tenho paciência para explicar o código, mas por agora tem-se revelado eficaz para a introdução única dos comentários. Até agora não corrompi nenhum ficheiro de teste, isto desde que seja apenas um gif no formato 89a, que é a última versão do formato.
Espero que vos sirva para algo no futuro