Obracający się napis jako animowany GIF – darmowy skrypt PHP

Dzierżąc w ręku różdżkę, jaką jest język PHP, można zdziałać naprawdę wiele. Mnie na przykład parę dni temu udało się wyczarować… własnego, animowanego GIF-a!

Witam na moim blogu!

Co istotne, do stworzenia tej grafiki użyłem zaledwie dwóch gotowych zaklęć:

  • pliku z czcionką Bromine, jaką wypisany jest tekst
  • klasy PHP służącej do generowania animowanych GIF-ów

A oto skrypt odpowiedzialny za utworzenie powyższego obrazka:

<?php
# A script generating animated GIF
# with 360 degrees rotating text.
# Created at: 2017-03-05
# by Homar IT, www.homar-it.obywateleuropy.eu

// Config
define ('WIDTH', 600);
define ('HEIGHT', WIDTH);
define ('TEXT', 'Witam na moim blogu!');
define ('TEXT_SIZE', 40);
define ('TEXT_FONT', './Bromine.ttf');
define ('TEXT_ANGLE', 330);

// Generate animation frames
$frames = array();
$delays = array();
for ($i = 0; $i < 360; $i++) {

     // Create new frame
     $frame = imagecreatetruecolor(WIDTH, HEIGHT);

     // Calculate angle
     $angle = TEXT_ANGLE + $i;

     // Calculate text center coordinates
     $box = @imageTTFBbox(TEXT_SIZE, $angle, TEXT_FONT, TEXT);
     $x   = ceil((WIDTH  - $box[4]) / 2);
     $y   = ceil((HEIGHT - $box[5]) / 2);

     // Write the text
     imagettftext ($frame, TEXT_SIZE, $angle, $x, $y, imagecolorallocate($frame, 255, 255, 255), TEXT_FONT, TEXT);

     // Render our frame and keep it in $frames
     ob_start();
     imagegif ($frame);
     $frames[] = ob_get_clean();
     $delays[] = 10;
}

// Display the result
require_once 'GIFEncoder.class.php';
$gif = new AnimatedGif($frames, $delays, 0);
$gif->display();

W tym akurat kodzie wszystkie dane (takie jak np. wymiary obrazka) są wpisane „na sztywno”, ale nic nie stoi na przeszkodzie, by skrypt pobierał je z zewnątrz 🙂 Mam nadzieję, że Was tym zainspirowałem i ciekaw jestem do czego Wy wykorzystacie ten kawałek kodu?

Advertisements

1 thought on “Obracający się napis jako animowany GIF – darmowy skrypt PHP”

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s