Home  »     »     »  PHP function to generate rounded edge image from a source image

PHP function to generate rounded edge image from a source image

Tuesday, November 16, 2010

Function for creating rounded edge image from a source image. The parameters to the function are corner radius (the degree to which the corner gets rounded). Also you can specify which of the corners of the image you want to get it as a rounded edge


*********************CODE START********************


function image_round_edges($image_file, $corner_radius=20, $angle= 0, $topleft=true, $topright=true, $bottomleft=true, $bottomright=true){
$info = getimagesize($image_file);
if($info){
switch($info[2]){
case 1 : { $images = imagecreatefromgif($image_file); break;}//gif
case 2 : { $images = imagecreatefromjpeg($image_file); break; }//jpg
case 3 : { $images = imagecreatefrompng($image_file); break; }//png
default : { exit("Unsupporter file type"); }
}
}
else{
print "Can't read required image data";
}

$backcolor='FFFFFF';
$endsize=$corner_radius;
$startsize=$endsize*3-1;
$arcsize=$startsize*2+1;



// Top-left corner
$background = imagecreatetruecolor($info[0],$info[1]);
imagecopymerge($background, $images, 0, 0, 0, 0, $info[0], $info[1], 100);
$startx=$info[0]*2-1;
$starty=$info[1]*2-1;
$im_temp = imagecreatetruecolor($startx,$starty);
imagecopyresampled($im_temp, $background, 0, 0, 0, 0, $startx, $starty, $info[0], $info[1]);
$bg = imagecolorallocate($im_temp, hexdec(substr($backcolor,0,2)),hexdec(substr($backcolor,2,2)),hexdec(substr($backcolor,4,2)));
$fg = imagecolorallocate($im_temp, hexdec(substr($forecolor,0,2)),hexdec(substr($forecolor,2,2)),hexdec(substr($forecolor,4,2)));

if ($topleft == true) {
imagearc($im_temp, $startsize, $startsize, $arcsize, $arcsize, 180,270,$bg);
imagefilltoborder($im_temp,0,0,$bg,$bg);
}

// Bottom-left corner
if ($bottomleft == true) {
imagearc($im_temp, $startsize, $starty-$startsize,$arcsize, $arcsize, 90,180,$bg);
imagefilltoborder($im_temp,0,$starty,$bg,$bg);
}

// Bottom-right corner
if ($bottomright == true) {
imagearc($im_temp, $startx-$startsize, $starty-$startsize,$arcsize, $arcsize, 0,90,$bg);
imagefilltoborder($im_temp,$startx,$starty,$bg,$bg);
}

// Top-right corner
if ($topright == true) {
imagearc($im_temp, $startx-$startsize, $startsize,$arcsize, $arcsize, 270,360,$bg);
imagefilltoborder($im_temp,$startx,0,$bg,$bg);
}


$newimage = imagecreatetruecolor($info[0],$info[1]);
imagecopyresampled($images, $im_temp, 0, 0, 0, 0, $info[0],$info[1],$startx, $starty);

switch($info[2]){
case 1 : { imagegif($images, $image_file, 100); break;}//gif
case 2 : { imagejpeg($images, $image_file, 100); break; }//jpg
case 3 : { imagepng($images, $image_file, 100); break; }//png
default : { exit("Unsupporter file type"); break;}
}
imagedestroy($background);
imagedestroy($im_temp);
}

?>


********************CODE END***************



How to link to this page?
If you wish to link to this page from your website, simply Copy and paste the above HTML code to your web page. It will appear on your page as:
PHP function to generate rounded edge image from a source image.




Share this!




comments powered by Disqus

This Weeks 7 Popular Posts


Subscribe to Recent Posts by Email
Stay connected to CROZOOM with regular Email notices of new Techie articles and IT Jobs. Updates will be delivered to your Inbox as soon as they are posted online.

Enter Your Email Address:  

Delivered by FeedBurner   RSS Feed

Search this Blog   



Urgent Openings for PHP trainees, Andriod / IOS developers and PHP developers in Kochi Trivandrum Calicut and Bangalore. Please Send Your updated resumes to recruit.vo@gmail.com   Read more »