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

Форум PHP

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

 

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

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

тема: скругление углов у изображения
 
 автор: m@rchello   (28.03.2009 в 19:14)   письмо автору
 
 

Доброго времени суток.
Подскажите пожалуста как скруглить углы у изображения?
нужно примерно такое http://mysitez.km.ua/Programming/?phptransmask , только без наложения шаблона, поскольку изображения имеют разные размеры. и желательно немного сгладить края этих углов.

  Ответить  
 
 автор: nikita2206   (28.03.2009 в 21:55)   письмо автору
5.6 Кб
 
   для: m@rchello   (28.03.2009 в 19:14)
 

у меня стоит такая фигня на сайте, недавно написал, но есть одна проблема: на PNG накладывать их нельзя(существуют некоторые трудности)....
в прикрепленном файле.....
нарисуете уголки своего цвета....

  Ответить  
 
 автор: sim5   (29.03.2009 в 15:14)   письмо автору
 
   для: m@rchello   (28.03.2009 в 19:14)
 

Можно поступить следующим образом (с типами изображений, с определением размера скругления в зависимости от размера изображения, сами подумаете).
<?
//создаем изображение-маску
//размер маски должен быть равен исходному изображению 
$im = imagecreatetruecolor(300,300);

//цвет, которым и будут содаваться закругления
//его можно определять как в HTML принято
$col = 0xff7739;
//далее получая из него индекс, 
$col = imagecolorsforindex($im, $col);
//и создавая палитру
$col = imagecolorallocate($im, $col['red'], $col['green'], $col['blue']);

//заполняем маску цветом скругления
imagefill($im, 0, 0, $col);

//устанавливаем и определяем цвет прозрачности маски
$black = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im, $black);

//рисуем закругления
//радиус закругления в примере принят равным 15
imagefilledarc($im, 15, 15, 31, 31, 180, 270, $black, 4);
imagefilledarc($im, 285, 15, 31, 31, 270, 0, $black, 4);
imagefilledarc($im, 284, 284, 31, 31, 0, 90, $black, 4);
imagefilledarc($im, 15, 284, 31, 31, 90, 180, $black, 4);

//заполняем прозрачным цветом остальную облась маски
imagefilledrectangle ($im, 0, 15, 299, 284, $black);
imagefilledrectangle ($im, 15, 0, 284, 299, $black);
  
//это имитирует исходное изображение 
$ims = imagecreatetruecolor(300,300);
$wh = imagecolorallocate($ims, 176, 155, 68);
imagefill($ims, 0, 0, $wh);

//накладываем маску на исходное изображение
imagecopymerge($ims, $im, 0, 0, 0, 0, 300, 300, 100);

//вывод изображения
header ("Content-type: image/png");
imagepng($ims);
?>

  Ответить  
 
 автор: ddhvvn   (29.03.2009 в 15:35)   письмо автору
 
   для: sim5   (29.03.2009 в 15:14)
 

или использовать прозрачность и изображение-маску

  Ответить  
 
 автор: sim5   (29.03.2009 в 15:38)   письмо автору
 
   для: ddhvvn   (29.03.2009 в 15:35)
 

Изображение-маска при масштабировании может привратиться в "бяку", читайте вопрос ;-)

  Ответить  
 
 автор: ddhvvn   (29.03.2009 в 16:29)   письмо автору
 
   для: sim5   (29.03.2009 в 15:38)
 

ой и правда невнимательный я!..

  Ответить  
 
 автор: Loki   (30.03.2009 в 11:15)   письмо автору
 
   для: m@rchello   (28.03.2009 в 19:14)
 

imagemagic умеет это делать. если есть к нему доступ, то решается довольно просто.

  Ответить  
 
 автор: m@rchello   (30.03.2009 в 12:08)   письмо автору
 
   для: Loki   (30.03.2009 в 11:15)
 

спросил в тех потдержке...модуль есть ... но не разу с ним не работал... подскажите пожалуста как что с ним делать... буду очень признателен.

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

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