PHP-GIF - генерация изображения на основе данных в реальном времени

Этот PHP скрипт позволяет реализовать генерацию изображения с данными в реальном времени. Он подойдет, как идеальное решение, для отправки электронных писем своим клиентам. Почтовые клиенты дают возможность загрузить изображение по URL и когда каждый клиент, вновь будет открывать сообщение, GIF изображение создастся по данным реального времени.

Скрипт проверен на большинстве почтовых клиентов, например, Gmail и Outlook 2011. Но есть важное замечание: Outlook 2007, 2010 и 2013 для Windows, будет отображать только первый кадр. Поэтому делайте первый кадр универсальным.

Так же есть предположения, что Gmail кэширует изображения, поэтому скрипт отправляет заголовки, которые поручают Gmail обновлять данные. Других проблем с Gmail не было замечено.

Пример создания живого GIF с отсчетом времени до нового года:

<?php
// Заголовки отключения кэша
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// Задаем тип контента
header ('Content-type:image/gif');
// Добавляем класс GIFGenerator
include('GIFGenerator.class.php');
// Инициализируем новый объект GIFGenerator
$gif = new GIFGenerator();
// Создаем многомерный массив со всеми кадрами изображения
$imageFrames = array(
'repeat' => 5,
'frames' => array(
array(
'image' => './images/newyear.jpg',
'text' => array(
array(
'text' => 'Hello GIF frame 1',
'font' => './fonts/Lato-Light.ttf',
'font-size' => 30,
'angle' => 0,
'font-color' => '#000',
'x-position' => 140,
'y-position' => 138
)
),
'delay' => 100
),
array(
'image' => './images/newyear.jpg',
'text' => array(
array(
'text' => 'Hello GIF frame 2',
'font' => './fonts/Lato-Light.ttf',
'font-size' => 15,
'angle' => 0,
'font-color' => '#000',
'x-position' => 140,
'y-position' => 138
),
array(
'text' => 'Hello GIF frame 2',
'font' => './fonts/Lato-Light.ttf',
'font-size' => 15,
'angle' => 0,
'font-color' => '#000',
'x-position' => 140,
'y-position' => 108
)
),
'delay' => 100
),
array(
'image' => './images/newyear.jpg',
'delay' => 50
)
)
);
//Генерируем и выводим результат на экран
echo $gif->generate($imageFrames);
?>

Можно просто скопировать код в PHP файл и выполнить в браузере, что позволит посмотреть результат. Как видите скрипт не требует использовать текст в GIF. Вы можете добавить столько текста на кадр и столько кадров в изображение, сколько захотите.

Для загрузки файла необходима регистрация

Добавить комментарий

Нам важно знать ваше мнение. Оставьте свой отзыв или ответ

Комментариев 0

Обновления на форуме