note 37420 added to function.imagecolortransparent

From: Date: Fri, 14 Nov 2003 10:30:19 +0000
Subject: note 37420 added to function.imagecolortransparent
Groups: php.notes 
Request: Send a blank email to php-notes+get-60376@lists.php.net to get a copy of this message
i had problems with the example by sandhawk at spies dot com because my png overlay, and the jpeg canvas were using different color depths, so, this function corrects this: [code] function WatermarkImage($CanvasImage, $WatermarkImage /* MUST BE PHG */, $Opacity=10, $Quality=75) { // create true color canvas image: $canvas_src = imagecreatefromjpeg($CanvasImage); $canvas_w = ImageSX($canvas_src); $canvas_h = ImageSY($canvas_src); $canvas_img = imagecreatetruecolor($canvas_w, $canvas_h); imagecopy($canvas_img, $canvas_src, 0,0,0,0, $canvas_w, $canvas_h); imagedestroy($canvas_src); // no longer needed // create true color overlay image: $overlay_src = imagecreatefrompng($WatermarkImage); $overlay_w = ImageSX($overlay_src); $overlay_h = ImageSY($overlay_src); $overlay_img = imagecreatetruecolor($overlay_w, $overlay_h); imagecopy($overlay_img, $overlay_src, 0,0,0,0, $overlay_w, $overlay_h); imagedestroy($overlay_src); // no longer needed // setup transparent color (pick one): $black = imagecolorallocate($overlay_img, 0x00, 0x00, 0x00); $white = imagecolorallocate($overlay_img, 0xFF, 0xFF, 0xFF); $magenta = imagecolorallocate($overlay_img, 0xFF, 0x00, 0xFF); // and use it here: imagecolortransparent($overlay_img, $white); // copy and merge the overlay image and the canvas image: imagecopymerge($canvas_img, $overlay_img, 0,0,0,0, $overlay_w, $overlay_h, $Opacity); // output: header("Content-type: image/jpeg"); imagejpeg($canvas_img, '', $Quality); imagedestroy($overlay_img); imagedestroy($canvas_img); } // call function with opcity set to 50% and 95% quality WatermarkImage("canvas.jpg", "overlay.png", 50, 95); [/code] ---- Manual Page -- http://www.php.net/manual/en/function.imagecolortransparent.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+37420 Delete -- http://master.php.net/manage/user-notes.php?action=delete+37420&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+37420&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#60376) next »