Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: imagecopyresampled Красивые картинки
 
 автор: Nevi   (06.05.2009 в 03:21)   письмо автору
 
 

Здравствуйте спецы!

Подскажите как сделать из имеющейся картинки формата 3x4 (соотношения сторон) качественную картинку 3x3 чтобы она не просто сжималась и растягивалась, а взялось именно из середины

  Ответить  
 
 автор: sim5   (06.05.2009 в 05:52)   письмо автору
 
   для: Nevi   (06.05.2009 в 03:21)
 

Взять нужную часть картинки.

  Ответить  
 
 автор: Nevi   (06.05.2009 в 22:34)   письмо автору
 
   для: 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 верхней и нижней границ.

  Ответить  
 
 автор: nikita2206   (06.05.2009 в 22:57)   письмо автору
 
   для: 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);

Может сработает;)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования