Наткнулся на весьма интересный класс для создания gif анимации. Для работы класса достаточно библиотеки GD, которая подключена практически на всех серверах поддерживающих php.
Немного помучив этот класс, а написал небольшой пример создания анимированой картинки.
Скачать класс можно тут — ссылка
Ниже приведен код с подробными комментариями:
include('GIFEncoder.class.php'); // подключаем класс для создания gif $frames = array(); // массив для хранения слайдов $framed = array(); // массив для храниения интервалов смены слайдов // создаем первый слайд $image = imagecreatefrompng('img_1.png'); // загрузаем картинку // наносим текст на картинку $color = imagecolorallocate($image, 0, 0, 0); // imagestring($image, 5, 20, 20, "Hello world!", $color); ob_start(); // включаем буферизацию вывода imagegif($image); // пишем в буфер получившийся слайд $frames[] = ob_get_contents(); // записываем в хранилище слайд из буфера $framed[] = 100; // записываем интервал до смены слайда ob_end_clean(); // отключаем буферизацию и чистим буфер // второй слайд $image = imagecreatefrompng('img_2.png'); ob_start(); imagegif($image); $frames[] = ob_get_contents(); $framed[] = 50; ob_end_clean(); // создаем gif картинку из $gif = new GIFEncoder($frames, $framed, 0, 0, 0, 0, 0, 'bin'); $fp = fopen('animation.gif', 'w'); // создаем и открываем файл fwrite($fp, $gif->GetAnimation()); // пишем в него fclose($fp); // закрываем файл
Какая замечательная штука.
В сети фиг найдёшь прогу по созданию, платные одни, с конскими ценами.
Гимп, конечно, бесплатный, но нельзя создать анимашку с разным временем на кадрах.
Удивительно, что рабочее решение нашлось на PHP.
Спасибо!