{% else-1 %}
Скругление углов картинки используя библиотеку GD.
Автор: Sergey Fedotov

                        
<?php 

/**

* Углоскруглятель :)

* * Sergey Fedotov <[email protected]>

* Version: 1.1

*/

$filename ='image.jpg';

$radius = 15;

/**

* Чем выше rate, тем лучше качество сглаживания и больше время обработки и

* потребление памяти.

* * Оптимальный rate подбирается в зависимости от радиуса.

*/

$rate = 3;

$img = imagecreatefromstring(file_get_contents($filename));

imagealphablending($img, false);

imagesavealpha($img,true);

$width = imagesx($img);

$height = imagesy($img);

$rs_radius = $radius *$rate;

$rs_size = $rs_radius *2;

$corner =imagecreatetruecolor($rs_size, $rs_size);

imagealphablending($corner, false);

$trans = imagecolorallocatealpha($corner, 255, 255, 255, 127);

imagefill($corner, 0, 0,$trans);

$positions = array(

array(0, 0, 0, 0),

array($rs_radius, 0,$width-$radius, 0),

array($rs_radius,$rs_radius, $width-$radius, $height-$radius),

array(0, $rs_radius, 0,$height-$radius),

);

foreach ($positions as $pos) {

imagecopyresampled($corner, $img, $pos[0],$pos[1], $pos[2], $pos[3], $rs_radius,$rs_radius, $radius, $radius);

}

$lx = $ly = 0;

$i =-$rs_radius;

$y2 =-$i;

$r_2 = $rs_radius *$rs_radius;

for (; $i <= $y2; $i++) {

$y = $i;

$x = sqrt($r_2-$y * $y);

$y += $rs_radius;

$x += $rs_radius;

imageline($corner, $x,$y, $rs_size, $y, $trans);

imageline($corner, 0,$y, $rs_size-$x, $y,$trans);

$lx = $x;

$ly = $y;

}

foreach ($positions as $i => $pos) {

imagecopyresampled($img, $corner, $pos[2],$pos[3], $pos[0], $pos[1], $radius, $radius,$rs_radius, $rs_radius);

}

header('Content-Type: image/png');

imagepng($img);

imagedestroy($img);

?>
0 42 0
0

Нет фото
• 7 авг 2013, 00:22


Зачем так усложнять. Можео это делать через html