Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изменение размеров анимированной GIF-картинки
 
 автор: mishaga   (20.09.2006 в 10:10)   письмо автору
 
 

Здравствуйте!
Тем по изменению размеров изображений на вашем форуме много. Поэтому не стану
поднимать старые проблемы.
Я столкнулся сдругой проблемой. Когда изменяешь размеры анимационного
gif-изображения функциями imagecopyresampled или imagecopyresized
(библиотека GD), сохраняется только уменьшеный первый кадр - остальные кадры
игнорируются.

Использую такой код:

/*
$outfile - выходной файл (если указать "" - пустую строку), то вывод произойдёт в
окно браузера)

$infile - исходный файл изображения

$neww - новая ширина картинки
$newh - новая высота картинки

$type - тип изображения (1 - GIF, 2 - JPG, 3 - PNG) Тип можно узнать используя
функцию getimagesize("путь к файлу"); Функция возвращает массив:
1й элемент - ширина,
2й элемент - высота,
3й элемент - тип
*/
function imageresize($outfile,$infile,$neww,$newh,$type)
{
    if (!file_exists($infile)) return 1;
    $quality=75; // для JPG - качество сжатия картинки
    switch ($type)
    {
        case (1): $im=imagecreatefromgif($infile);  break;
        case (2): $im=imagecreatefromjpeg($infile); break;
        case (3): $im=imagecreatefrompng($infile);  break;
        default : return 1; break;
    }
    $nim=imagecreatetruecolor($neww,$newh);
    imagecopyresampled($nim,$im,0,0,0,0,$neww,$newh,imagesx($im),imagesy($im));

    if (!file_exists($outfile))
    {
        $fp=fopen($outfile, "w");
        fwrite($fp,"");
        fclose($fp);
    }

    switch ($type)
    {
        case (1): imagegif($nim,$outfile);        break;
        case (2): imagejpeg($nim,$outfile,$quality);    break;
        case (3): imagepng($nim,$outfile);        break;
        default : return 1; break;
    }

    imagedestroy($im);
    imagedestroy($nim);

    return 0;
}


Если кто знает, как сделать маленькую анимированную GIF-картинку из большй,
то буду благодарен, если поможете.

   
 
 автор: cheops   (20.09.2006 в 12:34)   письмо автору
 
   для: mishaga   (20.09.2006 в 10:10)
 

Библиотека GDLib не работает с анимированными изображениями.

   
 
 автор: P@Sol   (20.09.2006 в 15:35)   письмо автору
 
   для: cheops   (20.09.2006 в 12:34)
 

может я что то не понял?
11/01/04:
gd 2.0.29 added animated GIF writing support, fontconfig support for easily specifying 
freetype font names, open polygon drawing, and important fixes for theoretically exploitable 
integer overflows in memory allocation code in previous releasesgd

но вроде как теперь поддерживает
http://www.boutell.com/gd/

   
 
 автор: cheops   (20.09.2006 в 20:58)   письмо автору
 
   для: P@Sol   (20.09.2006 в 15:35)
 

Хм... любопытно... а какие функции это поддерживают?

   
 
 автор: mishaga   (21.09.2006 в 07:21)   письмо автору
 
   для: cheops   (20.09.2006 в 12:34)
 

Начиная с версии 2.0.29 GD поддерживает анимационные gif'ы
А у меня 2.0.28. Так что я пропёрся =)

   
 
 автор: tuder   (21.09.2006 в 12:58)   письмо автору
 
   для: mishaga   (21.09.2006 в 07:21)
 

http://www.boutell.com/gd/

Version 2.0.33 (Stable)

Меня вот тут что интересует, можно ли отсюда что-то подсунуть в установленный дома пакет DENWER, чтобы поробовать новые возможности? В частности и анимацию?

   
 
 автор: P@Sol   (21.09.2006 в 13:55)   письмо автору
 
   для: tuder   (21.09.2006 в 12:58)
 

тоже этим занимаюсь:
http://softtime.ru/forum/read.php?id_forum=1&id_theme=24389&page=1
http://softtime.ru/forum/read.php?id_forum=2&id_theme=24903&page=1

   
 
 автор: Drago   (18.11.2006 в 23:12)   письмо автору
 
   для: P@Sol   (21.09.2006 в 13:55)
 

Получилось ли у вас найти GD 2.0.33 или быть может Imagick 0.9.11 и выше?

   
 
 автор: кастен   (27.11.2006 в 22:34)
 
   для: mishaga   (20.09.2006 в 10:10)
 

Открываешь в Adobe Image Ready Edit ->File Size и меняешь размер на нужный

   
 
 автор: tuder   (28.11.2006 в 07:08)   письмо автору
 
   для: кастен   (27.11.2006 в 22:34)
 

>Открываешь в Adobe Image Ready Edit ->File Size и меняешь размер на нужный

Каждой картинки, которую залили тебе на сайт?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования