note 88173 added to function.imagecolortransparent
| From: | designovermatter at gmail dot com | Date: | Wed, 14 Jan 2009 00:03:33 +0000 |
| Subject: | note 88173 added to function.imagecolortransparent | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-149153@lists.php.net to get a copy of this message | ||
I was searching for a PHP code that makes transparent rounded corners and found none. So had to
write my own:
<?
$image = "v.png";
$corner = 40;
file_exists($image) or die("No such file: ".$image); //check if image exists before
processing
$dim = getimagesize($image);
//create from type handle
if($dim[2] == 1) $new = imagecreatefromjpeg($image);
elseif($dim[2] == 2) $new = imagecreatefromgif($image);
elseif($dim[2] == 3) $new = imagecreatefrompng($image);
else die("Unsupported format: ".$dim[2]);
//find colorcode
$palette = imagecreatetruecolor($dim[0], $dim[1]);
$found = false;
while($found == false) {
$r = rand(0, 255);
$g = rand(0, 255);
$b = rand(0, 255);
if(imagecolorexact($new, $r, $g, $b) != (-1)) {
$colorcode = imagecolorallocate($palette, $r, $g, $b);
$found = true;
}
}
//draw corners
imagearc($new, $corner-1, $corner-1, $corner*2, $corner*2, 180, 270, $colorcode);
imagefilltoborder($new, 0, 0, $colorcode, $colorcode);
imagearc($new, $dim[0]-$corner, $corner-1, $corner*2, $corner*2, 270, 0, $colorcode);
imagefilltoborder($new, $dim[0], 0, $colorcode, $colorcode);
imagearc($new, $corner-1, $dim[1]-$corner, $corner*2, $corner*2, 90, 180, $colorcode);
imagefilltoborder($new, 0, $dim[1], $colorcode, $colorcode);
imagearc($new, $dim[0]-$corner, $dim[1]-$corner, $corner*2, $corner*2, 0, 90, $colorcode);
imagefilltoborder($new, $dim[1], $dim[1], $colorcode, $colorcode);
imagecolortransparent($new, $colorcode); //make corners transparent
//display rounded image
header("Content: image/png");
imagepng($new);
imagedestroy($new);
?>
It draws an arc and fills to border with a colorcode - a color that doesnot exist in current image,
to make it transparent in the end.
----
Server IP: 80.67.2.2
Probable Submitter: 80.216.218.246
----
Manual Page -- http://www.php.net/manual/en/function.imagecolortransparent.php
Edit -- https://master.php.net/note/edit/88173
Del: integrated -- https://master.php.net/note/delete/88173/integrated
Del: useless -- https://master.php.net/note/delete/88173/useless
Del: bad code -- https://master.php.net/note/delete/88173/bad+code
Del: spam -- https://master.php.net/note/delete/88173/spam
Del: non-english -- https://master.php.net/note/delete/88173/non-english
Del: in docs -- https://master.php.net/note/delete/88173/in+docs
Del: other reasons-- https://master.php.net/note/delete/88173
Reject -- https://master.php.net/note/reject/88173
Search -- https://master.php.net/manage/user-notes.php