[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: resize gif
gifff
Здраствуйте, как можно ресайзить анимированную gif картинку без потери анимации?



Спустя 7 минут, 43 секунды (24.05.2011 - 21:17) Игорь_Vasinsky написал(а):
вроде ни как.
или разобрать по адрам, потом ресайз - пото собрать.

Спустя 2 минуты, 49 секунд (24.05.2011 - 21:20) ИНСИ написал(а):
gifff посмотри в сторону ImageMagick ...

Спустя 10 минут, 45 секунд (24.05.2011 - 21:30) Guest написал(а):
Цитата (velbox @ 24.05.2011 - 18:20)
gifff посмотри в сторону ImageMagick ...

Да поглядел, даже разбирался с ним но честно говоря я не смог разобраться. Не могу понять довольно основных вещей.
Нашел такой скрипт:
convert image.gif -coalesce coalesce.gif 
/usr/bin/convert convert coalesce.gif -resize 300x150 s_image.gif

как я понял эти строки нужно отдельно каждую вставить в функцию exec?
Но после того как вставил ничего не происходит. Я как то должен указать путь к библиотеке ImageMagick? вот это я не уловил

Спустя 16 минут, 45 секунд (24.05.2011 - 21:47) ИНСИ написал(а):
1. Узнай, разрешено ли тебе на хостинге запускать exec команду
Если у тебя разрешено использовать exec, то вот это: /usr/bin/convert путь к библиотеке, узнай свой у тех поддержки.

2. Узнай, есть ли библиотека ImageMagic у тебя на сервере
Далее, если у тебя установлена библиотека, то посмотри тут:

http://www.php.net/manual/en/class.imagick.php

Спустя 28 минут, 26 секунд (24.05.2011 - 22:16) Guest написал(а):
как я понял чтоб понять разрешена ли функция exec нужно просто попробовать скрипт с ее участием, (пробовал system - выдало сообщение что запрещено), так что думаю использовать ее можно. Поправьте если я ошибаюсь узнаю у хостера :)
путь к библиотеке тот же и соответственно она установленна.
вот что нашел в мануале по идеи то что я и ищу:

$imagick = new Imagick("original.gif");

$format = $imagick->getImageFormat();
if ($format == 'GIF') {
$imagick = $imagick->coalesceImages();
do {
$imagick->resizeImage(120, 120, Imagick::FILTER_BOX, 1);
} while ($imagick->nextImage());
$imagick = $imagick->deconstructImages();
$imagick->writeImages('new_120x120.gif', true);

// can be added some more gifs
$imagick = $imagick->coalesceImages();
do {
$imagick->resizeImage(100, 100, Imagick::FILTER_BOX, 1);
} while ($imagick->nextImage());
$imagick = $imagick->deconstructImages();
$imagick->writeImages('new_100x100.gif', true);
}

$imagick->clear();
$imagick->destroy();


тут вроде и не нужен exec? скопипастил эффекту нет. А касательно той ссылки что вы мне дали на функцию там нет ее описания(( я непойму что с ней делать) куда ее вставлять и как использовать

Спустя 12 часов, 43 минуты, 21 секунда (25.05.2011 - 10:59) ИНСИ написал(а):
Guest попробуй в начале прописать:

if(class_exists('Imagick'))
echo 'OK';
else
echo 'Download';
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.