|
|
|
| Здравствуйте спецы!
Подскажите как сделать из имеющейся картинки формата 3x4 (соотношения сторон) качественную картинку 3x3 чтобы она не просто сжималась и растягивалась, а взялось именно из середины | |
|
|
|
|
|
|
|
для: Nevi
(06.05.2009 в 03:21)
| | Взять нужную часть картинки. | |
|
|
|
|
|
|
|
для: sim5
(06.05.2009 в 05:52)
| | а как это сделать каким php оператором?
Я вот думал сделать типа
imagecopyresampled($img, $src, 0, 0, 0, $visota, imagesx($img), imagesy($img), imagesx($src), imagesy($src));
$visota - это какието координаты чтобы из вертикального прямоугольника взять серединную квадратную часть
но никак не допру как это сделать
мне кажется есть какая то встроенная функция в php чтобы из прямоугольных картинок делать квадратные без растягивания | |
|
|
|
|
автор: ~~ (06.05.2009 в 22:50) |
|
|
для: Nevi
(06.05.2009 в 22:34)
| | На все случаи жизни функций нет, привыкайте. Можно поступить как-то так: вычислить высоту картинки (с помощью imagesy(), к примеру), потом с помощью очень сложных вычислений узнайте сколько пикселей нужно "отрубить" снизу и сверху картинки (на всякий случай: высота/8) и опять с помощью тяжелых инструментов высшей математики вычислите координаты y верхней и нижней границ. | |
|
|
|
|
|
|
|
для: Nevi
(06.05.2009 в 22:34)
| | $y = imagesy($src) < imagesx($src) ? imagesy($src) : imagesx($src);
$x = imagesx($src) < imagesy($src) ? imagesx($src) : imagesy($src);
imagecopyresampled($dest, $src, 0, 0, (int) (imagesx($x) - $x)/2, (int) (imagesy($y) - $y)/2, $x, $y, $x, $y);
Может сработает;) | |
|
|
|