Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Ужать до поределенного размера
Покинул форум
Сообщений всего: 130
Дата рег-ции: Янв. 2009
Помог: 0 раз(а)
[+]
Подскажите пожайлуста ф-цию или решение, которая сжимает изображение до определеного размера, для всех изображений одинакового, но чтобы не создавались белые полосы по бокам/сверху-снизу.
Покинул форум
Сообщений всего: 130
Дата рег-ции: Янв. 2009
Помог: 0 раз(а)
[+]
Джур
Почти то что нужно. При исходном размере картинки 325x488, картинка ужалась до 76х106. При том, что вызвал функцию с так resize('2.jpg', '3.jpg', 104, 106);. Как видно из результата, требованию соответствует только высота. А как исправить/написать чтобы требованиям соответствовали и ширина и высота?
Stierus
Отправлено: 27 Января, 2009 - 13:54:00
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
ты в фотошопе или в пэйнте приведи вручную к нужному размеру и посмотри на результат (всё растягивается) - тебе это нужно ?
Бублик
Отправлено: 27 Января, 2009 - 13:58:49
Частый гость
Покинул форум
Сообщений всего: 130
Дата рег-ции: Янв. 2009
Помог: 0 раз(а)
[+]
Я приводил в PAINT'e.NET. Ничего не растягивается! Изображение остается таким же, только с размерами 104x106px's
Stierus
Отправлено: 27 Января, 2009 - 14:03:20
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
325/104 = 3,125
488/106 = 4,604
пропорции разные, включай мозги. (Добавление)
Ладн, делай как знаешь, я предупреждал, что сотворить пытаешься фигню
Может ему нужно иконки (thumbnails) делать надо размера 40х40 то тогда качетсво и кривизна не так важны лишб бы было видно что же нарисовано примерно
Stierus
Отправлено: 27 Января, 2009 - 15:22:12
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
JustUserR, цифры
325/104 = 3,125
488/106 = 4,604
я не из головы взял, это он дал
ps
Давно хотел спросить про "Хостинг от 5 рублей в месяц с PHP/MySQL, unlim traffic и много другого" .. нафиг те 5 рублей ? Ссылку не смотрел - с работы доступ закрыт, но хостинг нужен, поподробнее можно ?
Давно хотел спросить про "Хостинг от 5 рублей в месяц с PHP/MySQL, unlim traffic и много другого" .. нафиг те 5 рублей ? Ссылку не смотрел - с работы доступ закрыт, но хостинг нужен, поподробнее можно ?
Выслал в ЛС
valenok
Отправлено: 27 Января, 2009 - 18:39:16
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
imagecopyresampled
bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
Эта функция делает очень простую задачу. Вырезает прямоугольный кусочек из одной картинки, изменяет её размер, сжимает или расширяет, растягивает или сужает и вставляет в новую картинку.
Это одна из самых дофига-аргументных функций и сейчас ты увидишь что даже тут всё очень просто.
resource $dst_image , resource $src_image - откуда и куда. Оба являются указателями на изображения в памяти.
int $dst_x , int $dst_y , int $src_x , int $src_y
Как я уже сказал, функция вырезает прямоугольные части. Тут мы обозначаем левый верхний угол нашего прямоугольники в исходном изображении и ту же точку в новом изображении.
int $dst_w , int $dst_h , int $src_w , int $src_h - ширина и высота этого прямоугольника на новом изображении и ширина и высота прямоугольника вырезанного из исходного изображения.
А теперь простыми словами и по русски:
Берем исходную картинку resource $src_image , вырезаем из неё прямоугольник левые верхний угол которого в точке int $src_x , int $src_y а высота и ширина int $src_w , int $src_h. Всё просто?
А теперь этот прямоугольник с изображением сжимаем, растягиваем, сужаем, расширяем так, чтобы его новые длина и ширина соответствовали int $dst_w , int $dst_h .
После чего этот новый прямоугольник вклиниваем на новое изображение в точке int $dst_x , int $dst_y.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.