note 88173 added to function.imagecolortransparent

From: 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

« previous php.notes (#149153) next »