Говорят, что создание сайта - очень длительный и трудоемкий процесс. Мы скажем - НЕТ! Ведь с новыми технологиями, такими как HTML5, CSS3, PHP и MySql можно быстро и легко научиться создавать сайты любой сложности.
Два сумасшедших веб-мастера покажут где что лежит и как этим пользоваться.
Авторизация
Новый
Забыл
Пожалуйста, заполните поля выше. Это нужно сделать обязательно, иначе ничего не получится.
PHP Статейки /

Как создать анимированное превью для видео средствами php + ffmpeg-php + imagick. Часть 2.

  • Четверг, 13 октября 2012, 20:34 |
  • Автор: falkovsky |
  • Просмотров: 1839 |
  • Комментарии: 5 |
  • В закладки:
С подсчетами покончено, двигаемся к анимации. Создадим графический объект, формата GIF, на который будем добавлять кадры.
$image = new Imagick();
$image -> setFormat('GIF');

Значение времени каждого кадра будет записываться в отдельной переменной $ftime , дабы избежать ошибок.
$ftime = 0;
Создаем цикл в котором производим подсчет величины времени для каждого кадра. Затем, делаем следующее:
1.Создаем объект, в который извлечем кадр.
2.Меняем размер, попутно задавая формат GIF
3.Добавляем объект к анимации и задаем задержку кадра.
Вот так:
for($i=0;$i<$frames;$i++) 
{
$ftime = $ftime + $cut; // Значение времени кадра
$frame = new Imagick(); // Создание нового объекта
$frame -> newPseudoImage($height, $width, 'ffmpeg:'.$file.'['.$ftime.']'); // Вытаскивание кадра из видео
$frame -> cropThumbnailImage($width, $height); // Уменьшение размера
$frame -> setFormat('GIF'); // Изменение формата на GIF
$image -> addImage($frame); // Добавление к анимации
$image -> setImageDelay($delay); // Установка задержки
}


Анимацию мы собрали. Задаем ей имя animation, в формате gif и сохраняем. Закрываем тэг php.
Примечание: Если в строке $image -> writeImages('animation.gif', true); значение true сменить false, то для каждого кадра будет выделен отдельный файл.
Для того, чтобы вывести получившуюся анимацию в браузере, прописываем:
header('Content-Type: image/gif'); 
echo $image->getImagesBlob();

перед тегом закрытия ?>

Новая услуга от Пиреус Банка в Украине - система дистанционного банковского обслуживания интернет-банкинг.
  • Тэги публикации
Добавить комментарий