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

Форум PHP

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

 

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

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

тема: Закруглить углы в квадрата(GD)
 
 автор: Emm   (15.06.2008 в 00:23)   письмо автору
 
 

Мне в дальнейшем предстоит создать скрипт, который должен выводить рисунок с произвольным текстом, на рисунке должен быть нарисован прямоугольник определенного цвета, размера, с этим справился, но теперь еще нужно, чтобы углы в нем можно было закруглять определенного радиуса,
тоесть, например, прямоугольник размером 400х170px, а радиус закругления углов 10px..., я вот думаю с помощью ф-ции imagefilledpolygon() это можно реализовать,но как правильно и быстро расчитывать координаты для рисования нужного прямоугольника, с этим грабли, у меня :(, может кто сталкивался с подобной задачей и может подсказать, или может есть где-то класс?

   
 
 автор: Trianon   (15.06.2008 в 01:42)   письмо автору
 
   для: Emm   (15.06.2008 в 00:23)
 

Сомнительно, чтоб imagefilledpolygon смог чем-то помочь.

<?php
$h 
= @$_REQUEST['h']; $w = @$_REQUEST['w']; $r = @$_REQUEST['r'];
if(!(
$r && $h 2*$r && $w 2*$r))
    exit(
'
     <form action=? method=post>
     W:<input name=w value=400>
     H:<input name=h value=300>
     R:<input name=r value=20>
     <input type=submit value=Draw>
     </form>    '
);
$w0 640$h0 480;
$x0 = ($w0-$w)>>1;
$y0 = ($h0-$h)>>1;

$x3 $x0+$w-1;
$y3 $y0+$h-1;
$x1 $x0+$r;
$y1 $y0+$r;
$x2 $x3-$r;
$y2 $y3-$r;

$im imagecreate($w0$h0);
$a imagecolorallocate($im505050);
$b imagecolorallocate($im250250250);
imagefill($im11$a);

imagefilledrectangle($im$x0$y0$x3$y3$b);
imagefilledrectangle($im$x0$y0$x1$y1$a);
imagefilledarc($im$x1$y1$r*2$r*2, -180, -90$bIMG_ARC_PIE);
imagefilledrectangle($im$x0$y2$x1$y3$a);
imagefilledarc($im$x1$y2$r*2$r*290180$bIMG_ARC_PIE);
imagefilledrectangle($im$x2$y0$x3$y1$a);
imagefilledarc($im$x2$y1$r*2$r*2, -900$bIMG_ARC_PIE);
imagefilledrectangle($im$x2$y2$x3$y3$a);
imagefilledarc($im$x2$y2$r*2$r*2,  090$bIMG_ARC_PIE);
imagestring($im8$x1$y1'It looks like a label'$a);

imagegif($im);
?>

   
 
 автор: Emm   (15.06.2008 в 04:25)   письмо автору
 
   для: Trianon   (15.06.2008 в 01:42)
 

Супер, =) огромнейшее спасибо за пример.

У меня, еще очень важный вопрос, эти углы возможно сгладить?

   
 
 автор: Emm   (15.06.2008 в 22:00)   письмо автору
 
   для: Emm   (15.06.2008 в 04:25)
 

Углы сгладил, вобщем все замечательно получилось )

Интересует еще одна вещь, есть ли в php встроенная возможность накладывать разные эффекты к изображению, там, осветление участков, изменение цвета, отражение, итд., ну чтоб не изобретать велосипеды, для разных эффектов, может где-то уже есть свободные классы, если знаете подскажите пожалуйста.

   
 
 автор: Саня   (15.06.2008 в 22:07)   письмо автору
 
   для: Emm   (15.06.2008 в 22:00)
 

Функция imagefilter() в PHP5.

   
 
 автор: Emm   (16.06.2008 в 01:34)   письмо автору
 
   для: Саня   (15.06.2008 в 22:07)
 

Да, спасибо, действительно стандартные)
А чего более продвинутого нет, скажем, мне нужно наложить слой в виде осветления части изображения, падающий свет с верху, и под углом, дело в том, что все изображения разного размера и , и наложение готового эффекта не проканает, необходимо динамически создавать под размер...

   
Rambler's Top100
вверх

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