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

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. Вы можете добавить столько текста на кадр и столько кадров в изображение, сколько захотите.

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

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

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

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

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