- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день. Никак не могу настроить вырезку изображения при помощи imagecopyresampled.
вот код:
переменные $x1,$y1,$x2,$y2,$width,$height передаются через POST. К примеру, значения такие:
70-71-346-231-276-160
Размер исходной картинки 500х333. Но на выходе получается следующее:
Вот исходное изображение:
Что я упустил? Спасибо заранее.
Добрый день. Никак не могу настроить вырезку изображения при помощи imagecopyresampled.
вот код:
переменные $x1,$y1,$x2,$y2,$width,$height передаются через POST. К примеру, значения такие:
70-71-346-231-276-160
Размер исходной картинки 500х333. Но на выходе получается следующее:
Вот исходное изображение:
Что я упустил? Спасибо заранее.
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 )
dst_x, dst_y, dst_w, dst_h - задают прямоугольную область куда нужно копировать
src_x, src_y, src_w, src_h - задают прямоугольную область в картинке оригинала откуда надо копировать,
_x, _y - это координата точки левого верхнего угла
_w, _h - это НЕ КООРДИНАТА, это смещение от левого верхнего угла.
В вышем случае, если вы хотите сделать просто уменьшенную версию оригинальной картинки, вам нужно
src_x, src_y, dst_x, dst_y - установить в ноль
src_w, src_h - размер оригинальной картинки
dst_w, dst_h - размер превью
остально оно сделает само %)
А что поправить, думаю, поймёте сами :)
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 )
dst_x, dst_y, dst_w, dst_h - задают прямоугольную область куда нужно копировать
src_x, src_y, src_w, src_h - задают прямоугольную область в картинке оригинала откуда надо копировать,
_x, _y - это координата точки левого верхнего угла
_w, _h - это НЕ КООРДИНАТА, это смещение от левого верхнего угла.
В вышем случае, если вы хотите сделать просто уменьшенную версию оригинальной картинки, вам нужно
src_x, src_y, dst_x, dst_y - установить в ноль
src_w, src_h - размер оригинальной картинки
dst_w, dst_h - размер превью
остально оно сделает само %)
А что поправить, думаю, поймёте сами :)
Мне нужен не ресайз, а именно вырезание.
Честно сказать - уже всю ночь курил маны, но так и не допер, где прошляпил.. Подскажите, плз, если не сложно.. :(
Чтобы было понятней, о чем я, вот пример работы:
http://up-image.ru/crop/tests/1.php
Мне нужен не ресайз, а именно вырезание.
Честно сказать - уже всю ночь курил маны, но так и не допер, где прошляпил.. Подскажите, плз, если не сложно.. :(
Проблема-то в чём?
Допустим У нас есть картинка 500х500 ($src) и нам надо вырезать у неё прямоугольник в 98х99 пикселей начиная с координаты 51, 52 и сунуть в картинку ($dst) 98х99 пикселей
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 )
Делается это так:
imagecopyresampled (
$dst,
$src,
0 (координата Х левого верхнего угла прямоугольника в целевой картинке),
0 (координата У левого верхнего угла прямоугольника в целевой картинке),
51 (координата Х левого верхнего угла прямоугольника в исходной картинке),
51 (............... У .................... ),
98 (ширина прямоугольника в целевой картинке),
99 (высота ............),
98 (ширина прямоугольника в оригинальной картинке),
99 (высота.....)
);
Объясню как оно работает еще раз :)
Мы задаём два прямоугольника (_x, _y, _w, _h) прямоугольник SRC и прямоугольник DST.
А потом функция берет все пиксели прямоугольника SRC и ресайзит в прямоугольник DST.
Соответственно если src_w == dst_w && src_h == dst_h - то ресайза не будет, т.к. прямоугольники имеют одинаковый размер, а будет просто кроп.
Понятно? :)
Проблема-то в чём?
Допустим У нас есть картинка 500х500 ($src) и нам надо вырезать у неё прямоугольник в 98х99 пикселей начиная с координаты 51, 52 и сунуть в картинку ($dst) 98х99 пикселей
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 )
Делается это так:
imagecopyresampled (
$dst,
$src,
0 (координата Х левого верхнего угла прямоугольника в целевой картинке),
0 (координата У левого верхнего угла прямоугольника в целевой картинке),
51 (координата Х левого верхнего угла прямоугольника в исходной картинке),
51 (............... У .................... ),
98 (ширина прямоугольника в целевой картинке),
99 (высота ............),
98 (ширина прямоугольника в оригинальной картинке),
99 (высота.....)
);
Объясню как оно работает еще раз :)
Мы задаём два прямоугольника (_x, _y, _w, _h) прямоугольник SRC и прямоугольник DST.
А потом функция берет все пиксели прямоугольника SRC и ресайзит в прямоугольник DST.
Соответственно если src_w == dst_w && src_h == dst_h - то ресайза не будет, т.к. прямоугольники имеют одинаковый размер, а будет просто кроп.
Понятно? :)
Подставил Ваши значения - то же самое. С нулевыми координатами ресайзит правильно, но нужен не ресайз (
Спасибо огромное, все получилось!