note 89927 modified in function.imagecolortransparent by danbrown

From: Date: Sun, 29 Mar 2009 15:00:08 +0000
Subject: note 89927 modified in function.imagecolortransparent by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-152579@lists.php.net to get a copy of this message
I've made a very simple script that will retain transparency of images especially when resizing. NOTE: Transparency is only supported on GIF and PNG files. Parameters: $new_image = image resource identifier such as returned by imagecreatetruecolor(). must be passed by reference $image_source = image resource identifier returned by imagecreatefromjpeg, imagecreatefromgif and imagecreatefrompng. must be passed by reference <?php function setTransparency($new_image,$image_source) { $transparencyIndex = imagecolortransparent($image_source); $transparencyColor = array('red' => 255, 'green' => 255, 'blue' => 255); if ($transparencyIndex >= 0) { $transparencyColor = imagecolorsforindex($image_source, $transparencyIndex); } $transparencyIndex = imagecolorallocate($new_image, $transparencyColor['red'], $transparencyColor['green'], $transparencyColor['blue']); imagefill($new_image, 0, 0, $transparencyIndex); imagecolortransparent($new_image, $transparencyIndex); } ?> Sample Usage: (resizing) <?php $image_source = imagecreatefrompng('test.png'); $new_image = imagecreatetruecolor($width, $height); setTransparency($new_image,$image_source); imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height); ?> --was-- I've made a very simple script that will retain transparency of images especially when resizing. NOTE: Transparency is only supported on GIF and PNG files. Parameters: $new_image = image resource identifier such as returned by imagecreatetruecolor(). must be passed by reference $image_source = image resource identifier returned by imagecreatefromjpeg, imagecreatefromgif and imagecreatefrompng. must be passed by reference function setTransparency($new_image,$image_source) { $transparencyIndex = imagecolortransparent($image_source); $transparencyColor = array('red' => 255, 'green' => 255, 'blue' => 255); if ($transparencyIndex >= 0) { $transparencyColor = imagecolorsforindex($image_source, $transparencyIndex); } $transparencyIndex = imagecolorallocate($new_image, $transparencyColor['red'], $transparencyColor['green'], $transparencyColor['blue']); imagefill($new_image, 0, 0, $transparencyIndex); imagecolortransparent($new_image, $transparencyIndex); } Sample Usage: (resizing) $image_source = imagecreatefrompng('test.png'); $new_image = imagecreatetruecolor($width, $height); setTransparency($new_image,$image_source); imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height); http://php.net/manual/en/function.imagecolortransparent.php

« previous php.notes (#152579) next »