Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужно сохранить *.gif с анимацией с др. размерами 
:(
    Опции темы
Dmitry_177
Дата 3.2.2008, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Нужно сохранить *.gif с анимацией с уменьшенными размерами.. делаю я так:

Код

$dest_img = imagecreatetruecolor($w, $h);
$src_img = imagecreatefromgif($gif_file_name);
$src_imgsize = getimagesize($gif_file_name);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $src_imgsize[0], $src_imgsize[1]);
imagegif($dest_img, $new_gif_file_name);

imagedestroy($dest_img);
imagedestroy($src_img);


уменьшенная копия сохраняется, но в ней нету анимации, которая в исходном есть..

Это сообщение отредактировал(а) Dmitry_177 - 3.2.2008, 21:12
PM MAIL   Вверх
flashaa
Дата 3.2.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: нет
Всего: 25



Анимацию он теряет. GD не лучшая отнюдь библиотека, я бы даже сказал, она обладает минимумом возможностей. БОльшие возможности имеет ImageMagick.
PM MAIL   Вверх
Dmitry_177
Дата 3.2.2008, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Цитата

Анимацию он теряет. GD не лучшая отнюдь библиотека, я бы даже сказал, она обладает минимумом возможностей. БОльшие возможности имеет ImageMagick.

ок, у себя то на компе я ее поставлю для создания сайта.. а как быть с хостингом??
PM MAIL   Вверх
flashaa
Дата 3.2.2008, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: нет
Всего: 25



Цитата(Dmitry_177 @  3.2.2008,  21:22 Найти цитируемый пост)
а как быть с хостингом?? 

На нормальных хостингах стоит или ставится по требованию.
PM MAIL   Вверх
Dmitry_177
Дата 3.2.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



А какую нужно ставить? я что-то не пойму.. 

ImageMagick-6.3.8-3-Q16-windows-dll.exe
ImageMagick-6.3.8-3-Q16-windows-static.exe
ImageMagick-6.3.8-3-Q8-windows-dll.exe
ImageMagick-6.3.8-3-Q8-windows-static.exe
ImageMagick-6.3.8-3-Q16-windows-x64-static.exe

я как понимаю Q16 лучше, т.к. в Q8 (8бит красный, 8бит зеленый..), в Q16 я как понял по 16бит, наверно это лучше.. x64 - сразу отпадает, т.к. у меня не 64 битный процессор.. а вот в чем отличие dll от static я так и не понял..
PM MAIL   Вверх
GeneralElectric
Дата 3.2.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



без разницы
PM MAIL   Вверх
Dmitry_177
Дата 3.2.2008, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



может глупый вопрос.. Вот я установил.. А что дальше? Нигде ничего ненадо больше настраивать? php.ini например, или Apache?
PM MAIL   Вверх
GeneralElectric
Дата 3.2.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



нет
PM MAIL   Вверх
Dmitry_177
Дата 4.2.2008, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



а где можно почитать про функции этой библиотеки? что-то ищу не найду что-то.. чтобы уменьшить все же gif с анимацией..
PM MAIL   Вверх
gta4kv
Дата 4.2.2008, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 8
Всего: 91



Цитата(Dmitry_177 @ 4.2.2008,  00:16)
а где можно почитать про функции этой библиотеки? что-то ищу не найду что-то.. чтобы уменьшить все же gif с анимацией..

http://www.imagemagick.org/Usage/
PM MAIL   Вверх
Dmitry_177
Дата 4.2.2008, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



что-то я не понял... это через командную строку чтоли? и в php тоже через нее программировать как-то?
PM MAIL   Вверх
GeneralElectric
Дата 4.2.2008, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



В PHP ничего программировать не надо. В PHP программировать только команду system().


PM MAIL   Вверх
Dmitry_177
Дата 4.2.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Я не понимаю как это.. smile 
PM MAIL   Вверх
GeneralElectric
Дата 4.2.2008, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



в командной строке делаешь, что тебе надо.
потом эту командную строку берешь, и аккуратно вставляешь в system()
вот и все.
PM MAIL   Вверх
$дмитрий
Дата 7.2.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Смотри вот пример
Код

exec ("/usr/local/bin/mogrify -resize 100x100 /home/www/site/photo.gif");

PM MAIL   Вверх
Dmitry_177
Дата 7.2.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



поразбирался немного.. вроде как суть понял.. и всплыло несколько вопросов по приведеному коду:
Цитата

exec ("/usr/local/bin/mogrify -resize 100x100 /home/www/site/photo.gif");


1: а точно /usr/local/bin/mogrify а не /usr/local/bin/convert ?

2: как исходный гиф оставить без изменений, а изменный сохранить в другом файле?
PM MAIL   Вверх
$дмитрий
Дата 8.2.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Цитата

а точно /usr/local/bin/mogrify а не /usr/local/bin/convert ?

У меня именно /usr/local/bin/mogrify

Цитата

как исходный гиф оставить без изменений

Можно сначала скопировать изображение
Код

copy($sFile1, $sFile2);
#or
exec("cp $sFile1 $sFile2");

а затем обрабатывать уже новый

Это сообщение отредактировал(а) $дмитрий - 8.2.2008, 09:53
PM MAIL   Вверх
GeneralElectric
Дата 8.2.2008, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



Dmitry_177, предлагаю тебе удивительный вариант решения проблемы. Не спрашивать, а выбрать самостоятельно =)
Уменьшить картинку каждым из способов, посмотреть результат и выбрать =)
PM MAIL   Вверх
Dmitry_177
Дата 8.2.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Я просто думал может есть какая-то команда в ImageMagick для этого, чтобы сразу сохранять измененный гиф в отдельном файле, но что-то я ненашел такой..
PM MAIL   Вверх
Dmitry_177
Дата 8.2.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Так все же интересно.. Может есть какая?
PM MAIL   Вверх
$дмитрий
Дата 9.2.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



PM MAIL   Вверх
Dmitry_177
Дата 9.2.2008, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



хм.. она же конвертирует.. а хотя можно и там и там расширение gif поставить smile 

всеже наверно лучше в php копировать, мое ИМХО..
PM MAIL   Вверх
Dmitry_177
Дата 11.2.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



попробовал у себя на компе через Apache, что-то не работает.. и всю библиотеку копировал в папку с сайтом и путь который в Program Files писал.. почему-то не меняется размер.. smile 
PM MAIL   Вверх
GeneralElectric
Дата 11.2.2008, 22:44 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



Дима. Пора бы уже научиться задавать вопросы-то.
На последнюю твою реплику в том виде, как она сформулирована, можно только посочувствовать.
"пробовал"... как конкретно пробовал?
"путь писал, который"... какой конкретно путь? как писал? где писал?

PM MAIL   Вверх
Dmitry_177
Дата 11.2.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



вот так пробовал, вся библиотека была скопирована в папку в корень папки сайта, в папку ImageMagick..
Код

exec(escapeshellcmd("ImageMagick/mogrify.exe -resize 100x100 i7.gif"));


и так пробовал:
Код

exec(escapeshellcmd("C:/Program Files/ImageMagick/mogrify.exe -resize 100x100 i7.gif"));


пробовал как convert.exe так и mogrify.exe
PM MAIL   Вверх
GeneralElectric
Дата 11.2.2008, 23:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



прелесть.
и ты хочешь сказать, что в консоли у тебя работает команда 
Код

C:/Program Files/ImageMagick/mogrify.exe -resize 100x100 i7.gif

?
извини, я тебе не поверю.
на месте командного интерпретатора я бы поискал команду C:/Program , не нашел, и сказал бы в твой адрес что-то нехорошее.

Добавлено через 4 минуты и 20 секунд
Цитата(Dmitry_177 @  11.2.2008,  22:56 Найти цитируемый пост)
пробовал как convert.exe так и mogrify.exe 

Господи, да какая разница! хоть command.com!
Дело не в том, что ты вызываешь, а в том, как.
Надо не замену неработающей команде искать, а заставлять работать ту, которая есть.
только с таким подходом ты добьешься чего-то в программировании. Чем меньше будет шаманских плясок "одно заменить на другое", а больше - осмысленных действий, таких, ка кпроверить команду без пхп - там ближе ты окажешься к результату.

В половине топиов на форуме такие вот пояснения звучат: "заменил mysql_escape_string на addslashes. нипамагло". а зачем заменял-то? Делать надо что-то, если только понимаешь смысл операции. А не тыкать наобум.


Это сообщение отредактировал(а) GeneralElectric - 11.2.2008, 23:07
PM MAIL   Вверх
Dmitry_177
Дата 11.2.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Цитата

и ты хочешь сказать, что в консоли у тебя работает команда 

Я такого не говорил.. smile 

Так.. а почему у меня это не работает тогда?
Код

exec(escapeshellcmd("ImageMagick/mogrify.exe -resize 100x100 i7.gif"));

PM MAIL   Вверх
GeneralElectric
Дата 11.2.2008, 23:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



Причин может быть миллион.
Во-первых, зачем ты искейпишь её?
Во-вторых, праильно ли ты указываешь путь?
В-третьих, так запусти, наконец, в консоли.
Нажимаешь "Пуск" - "Выполнить", пишешь cmd.exe и надимаешь ОК
и там пишешь свои команды. Пока не начнет получаться. И только после этого можно начинать запускать их в пхп!

Это вообще основа основ. Нельзя хотеть от пхп, чтобы он умел за тебя работать с SQL, FTP, SMTP, картинками. Надо сначала самому уметь составить запрос или команду, и только потом просить пхп её выполнять. при этом роль пхп сведется к элементарному вызову.

PM MAIL   Вверх
Dmitry_177
Дата 11.2.2008, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Цитата

Во-первых, зачем ты искейпишь её?

попробовал без этого, всеравно..

Цитата

Во-вторых, праильно ли ты указываешь путь?

правильно, папка ImageMagick и i7.gif находятся в корне

Цитата

-третьих, так запусти, наконец, в консоли.

Получилось smile) Но только она гиф размерами 648*60 сделала 100*13, хотя я задавал 100*100 и еще при просмотре уже уменьшенной совсем нетакая анимация.. бывает весь фон заливается разными цветами(типа негатива что-то).. Этого недолжно быть! И моргает как-то все некрасиво..

Это сообщение отредактировал(а) Dmitry_177 - 11.2.2008, 23:39
PM MAIL   Вверх
GeneralElectric
Дата 11.2.2008, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 1
Всего: 16



уменьшение анимированного гифа - вообще нетривиальная задача. и, часто, нерешаемая в принципе.
так что лучше раслабься, и либо вообще не уменьшай, либо уменьшай первый кадр.
я вообще не понимаю проблемы с анимациями. таких картинок в мире очень небольшое количество. отдельно из-за них париться не вижу смысла.

100*13 - это строго по документации.

Путь к картинкам и программам лучше указывать абсолютный.

PM MAIL   Вверх
Dmitry_177
Дата 15.2.2008, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 22.9.2006

Репутация: нет
Всего: нет



Вот так изменяется размер почти без потери качества..

Код

1. convert source.gif -coalesce temp.gif
2. convert temp.gif -resize WxH dest.gif


Только есть два НО:
1. размеры мне нужно все же свои задавать(пускай хоть даже расстянится по ширине или по высоте), а не пропорционально уменьшать..
2. размер получается больше чем исходный..

подскажите пожалуйста..
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0710 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.