Tagi: animowany, gd, gif, gifencoder, php, programowanie www
Co potrafi GD
GD jest biblioteką umożliwiającą pracę z grafiką z poziomu języka PHP. Posiada szereg możliwości począwszy od skalowania, kadrowania, filtrowania i skończywszy na zapisie w różnych formatach. A co z animacjami? Krucho. Po prostu nie zostały zaimplementowane. Ale głowa do góry jest proste rozwiązanie.
GIFEncoder
Brak obsługi animacji w bibliotece GD może okazać się czasami ograniczający. Naprzeciw z pomocą wychodzi dodatkowa klasa GIFEncoder. Specyfikacja formatu umożliwiła autorowi stworzenie programu łączącego wiele grafik (*.gif) w jeden animowany obrazek. Możemy zarówno wykorzystać pliki zapisane na dysku jak i te stworzone dynamicznie.
Klasę można pobrać z serwisu PHP Classes. Jako że rejestracja jest zniechęcająca oto i alternatywne źródło. Poniżej zamieszczam przykład użycia.
$framed = array();
$colors = array(array(255,0,0),array(0,0,255));
foreach ($colors as $color)
{
ob_start();
$image = ImageCreate(50, 50); //width, height
$temp = ImageColorAllocate($image,$color[0] ,$color[1] ,$color[2]);
ImageFill($image,1,1,$temp);
imagegif($image);
imagedestroy($image);
$frames[] = ob_get_clean();
$framed[] = 100;//time
}
$gif = new GIFEncoder($frames,$framed,0,2,0, 0, 0,0,"bin");
Header('Content-type:image/gif');
echo $gif->GetAnimation();
Mój własny animowany baner
Wykorzystując opisaną klasę stworzyłem baner promujący moją stronę. Ważna była dla mnie estetyczna prosta szata graficzna. Nie ma fajerwerków. Jest to celowy zabieg. Nie chciałem dekoncentrować czytelników. Do tchnięcia życia w całość wystarczy skromna animacja. Na banerze umieszczam losowy wpis z bloga co ma odszukać potencjalnych zainteresowanych. Całość jest buforowania i aktualizuje się raz na 12 godzin.
![]()