Forum Webscript.Ru

Программирование => PHP => Тема начата: andtar от 02 Июля 2002, 17:40:28

Название: Графика
Отправлено: andtar от 02 Июля 2002, 17:40:28
Какой функцией уменьшают изображение, сохраняя его в файл.
Допостим файл рисунка в переменной $file. Оригинал я сохраняю в
copy ($file, "files/$file_name");
а как сохранить миниатюру, разрешением 150x112?
Название: Графика
Отправлено: ThE0ReTiC от 02 Июля 2002, 17:44:13
GetImageSize->ImageCopyResized->Image[BMP|PNG|JPEG]($ih,\'filename\');
Название: Графика
Отправлено: .Sm@sH. от 02 Июля 2002, 18:03:22
А где GD скачать?
Название: Графика
Отправлено: GotZfild от 02 Июля 2002, 18:14:25
По идее, он у тебя уже есть, только, наверно, не подключен.
Официальная страница - http://www.boutell.com
Название: Графика
Отправлено: ThE0ReTiC от 02 Июля 2002, 18:22:03
.Sm@sH.
Под винду его надо просто в php.ini подключить.
Название: Графика
Отправлено: .Sm@sH. от 02 Июля 2002, 19:19:26
Thanx!
Каким макаром его подключать? Или в ридми написано? Я в онлайне - и просто не хочу щас смотреть....
Название: Графика
Отправлено: GotZfild от 02 Июля 2002, 20:28:54
Раскомментируй строку.
Название: Графика
Отправлено: Stek от 02 Июля 2002, 22:01:19
Цитировать
Каким макаром его подключать? Или в ридми написано? Я в онлайне - и просто не хочу щас смотреть....

Кажется быстрее будет посмотреть, чем ответа дожидатся :)
В php.ini убрать значок коментария в строке
extension=php_gd.dll
Название: Графика
Отправлено: andtar от 03 Июля 2002, 09:01:11
Цитировать
GetImageSize->ImageCopyResized->Image[BMP|PNG|JPEG]($ih,\'filename\');

Только ф-ей imagecopyresized можно пользоваться (без других перечисленных)? И какой у нее синтаксис? Где там разрешение указывать?
Название: Графика
Отправлено: Maniac от 03 Июля 2002, 10:46:55
Вообще-то, Stek тебе показал последовательность вызова функций для конкретной задачи: вывод уменьшенной картинки.

Параметры imagecopyresized таковы

int imagecopyresized ( resource dst_im, resource src_im, int dstX,
int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

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

А последняя функция, предложенная Стеком, выводит картинку.
Название: Графика
Отправлено: ThE0ReTiC от 03 Июля 2002, 10:59:11
andtar
Надо создать новую картинку с размерами, нужными тебе. Лучше использовать коэффициент для расчета нового размера, тогда у тебя маленькая картинка сохранит пропорции.
Вместо ImageCopyResized можно воспользоваться ImageCopyResampled.
Название: Графика
Отправлено: andtar от 04 Июля 2002, 06:00:39
а другим способом нельзя это сделать. У меня ведь рисунок загружается пользователями через . А нужно не использовать imagecreate и т.д.
Название: Графика
Отправлено: Maniac от 04 Июля 2002, 10:58:10
Да без проблем - можно. Пишешь скрипт, который читает форматы .jpg и .gif, а затем их уменьшает.
С gif\'ом особенных проблем быть не должно, а джипегом придется повозиться.

Есть желание? А почему тогда GD использовать не хошь?
Название: Графика
Отправлено: AliMamed от 04 Июля 2002, 11:54:21
точнее
extension=php_gd2.dll

(по крайней мере для 4.2.1)
Название: Графика
Отправлено: Fury от 05 Июля 2002, 11:36:05
andtar
Почему тебе нужно без ImageCreate (кста, лучше ImageCreateTrueColor)?
Потом сделаешь ImageDestroy и никаких проблем :+)

ПС: а вообще, синтаксис функций можно в хелпах и манах смотреть. А не ждать, пока кто-то за тебя в ман полезет и его же тебе здесь процитирует.