note 89927 modified in function.imagecolortransparent by danbrown
| From: | danbrown@php.net | 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