imagecolorset 


gd apg

SET the color for the specified palette index.

Determine a new color for a given index from the palette of an image.

Modify the color of one or more pixels in a given image.





This function get the index of an specific pixel color $image.





$image symbolized by a identifier returned by one of the image creation functions, such as imagecreate or imagecreatetruecolor.


ALPHA-CHANNEL

or simply ALPHA, can be considered as the fourth component associated with color.

Basically interprets pixel-level transparency or opacity properties, including grayscale, especially for TRUECOLOR images in PNG format.



<?php

bool imagecolorset
GdImage $image
                                          
int $color
                                          
int $red
                                          
int $green,  
                                          
int $blue,  
                                          
int $alpha )

where,

$image The image identifier 

$color 
The color index obtained by imagecolorat

$red 
The value of red component of the color

$green 
The value of green component of the color

$blue 
The value of blue component of the color

$alpha 
The value of alpha component of the color

?>
 

  $image   


The image identifier.



  $color   


The color index in the palette obtained by imagecolorat.



  $red   


The value of red component of color.



  $green   


The value of green component of color.



  $blue   


The value of blue component of color.



  $alpha   


The value of alpha component of the color.



  1 EXERCISE   

<?php

echo 'PHP VERSION: ' PHP_VERSION '<br><br>';

$lang 'en';

$tst_img "gif/GIF 014 01 white-red.gif";
$exact_col_img "gif/GIF 014 01 exact color.gif";
$replcd_col_img "gif/GIF 014 01 color to replace.gif";
$nw_img "gif/GIF 014 01 result.gif";

$pl_red 220;
$pl_green 57;
$pl_blue 29;

$rp_red 0;
$rp_green 0;
$rp_blue 255;

echo 
$tst_img?><br><br>Original image
<br><br><img src="<?php echo $tst_img?>
alt="<?php echo $tst_img?>"><br><br>

<?php

$im_paint01 
imagecreatefromgif($tst_img);
$sx imagesx($im_paint01);

$pal_ndx imagecolorexact($im_paint01$pl_red$pl_green$pl_blue);

if (
$pal_ndx == -1)
{

$im_paint01e imagecreate($sx30);
imagecolorallocate($im_paint01e$pl_red$pl_green$pl_blue);
imagegif($im_paint01e$exact_col_img);


$en 'The reported color is not part of the image!';

echo 
'RGB = ( ' $pl_red ', ' $pl_green
 
', ' $pl_blue ' )<br><br>' . $$lang '<br><br>';
 
 echo 
$exact_col_img '<br>';
 
 echo 
'<br><img src="' $exact_col_img
 
'" alt="' $exact_col_img '"' '>';
 
 exit();
 
$en 'Index = ' $ndx_exc_pal;
echo 
'<br><br>' . $$lang;
}
else
{
$im_paint01e imagecreate($sx30);
imagecolorallocate($im_paint01e$pl_red$pl_green$pl_blue);
imagegif($im_paint01e$exact_col_img);


$en 'Existing color';

echo 
'<br>RGB = ( ' $pl_red ', ' $pl_green
 
', ' $pl_blue ' )&nbsp;( ' . $$lang 
 
'&nbsp;)<br><br><br>';
 echo 
$exact_col_img;
 

$en 'Index = ' $pal_ndx;
echo 
'<br>' . $$lang '<br>';
 
 echo 
'<br><img src="' $exact_col_img
 
'" alt="' $exact_col_img '"' '><br><br><br><br>';
 
$im_paint01n imagecreate($sx30);
imagecolorallocate($im_paint01n$rp_red$rp_green$rp_blue);
imagegif($im_paint01n$replcd_col_img);


$en 'Color Replacement';

echo 
'RGB = ( ' $rp_red ', ' $rp_green
 
', ' $rp_blue ' )&nbsp;(&nbsp;' . $$lang 
 
'&nbsp;)&nbsp;<br><br><br>';
 
 echo 
$replcd_col_img '<br><br>';
 
 echo 
'<img src="' $replcd_col_img
 
'" alt="' $replcd_col_img '"' '><br><br><br><br>';
 
imagecolorset($im_paint01$pal_ndx$rp_red$rp_green$rp_blue);

imagegif($im_paint01$nw_img);

$en "New Image";

?>

<?php echo $nw_img?>&nbsp;(&nbsp;<?php echo $$lang?>&nbsp;)
<br><br><img src="<?php echo $nw_img?>
 alt="<?php echo $nw_img?>">

<?php



?> 

 RESULT   

GIF 014 01 white-red.gif

GIF 014 01 white-red.gif apr



GIF 014 01 exact color.gif

RGB = ( 220, 57, 29 )
Existing color palette
Palette Index = 0


GIF 014 01 exact color.gif apr


GIF 014 01 exact color.gif

RGB = ( 0, 0, 255 )
Substitute Color


GIF 014 01 color to replace.gif apr


GIF 014 01 result.gif

New Image

GIF 014 01 result.gif  apr

  2 EXERCISE   

<?php

echo 'PHP VERSION: ' PHP_VERSION '<br><br>';

$lang 'en';

$tst_img "bmp/BMP 005 02 P de Galinhas.bmp";
$exact_col_img "bmp/BMP 005 02 P de Galinhas-to be replaced.bmp";
$replcd_col_img "bmp/BMP 005 02 P de Galinhas-replaced.bmp";
$nw_img "bmp/BMP 005 02 P de Galinhas-result.bmp";

$pl_red mt_rand(240243);
$pl_green 1;
$pl_blue 87;

$rp_red 255;
$rp_green 255;
$rp_blue 255;

echo 
$tst_img?><br><br>Original image
<br><br><img src="<?php echo $tst_img?>
alt="<?php echo $tst_img?>" width="400"><br><br>

<?php

$im_paint02 
imagecreatefrombmp($tst_img);
$sx imagesx($im_paint02);

$pal_ndx imagecolorexact($im_paint02$pl_red$pl_green$pl_blue);

if (
$pal_ndx == -1)
{

$im_paint02e imagecreate($sx30);
imagecolorallocate($im_paint02e$pl_red$pl_green$pl_blue);
imagebmp($im_paint02e$exact_col_img);


$en 'The reported color is not part of the image!';

echo 
'RGB = ( ' $pl_red ', ' $pl_green
 
', ' $pl_blue ' )<br><br>' . $$lang '<br><br>';
 
 echo 
$exact_col_img '<br>';
 
 echo 
'<br><img src="' $exact_col_img
 
'" alt="' $exact_col_img '"' ' width="400">';
 
 exit();
 
$en 'Index = ' $ndx_exc_pal;
echo 
'<br><br>' . $$lang;
}
else
{
$im_paint02e imagecreate($sx30);
imagecolorallocate($im_paint02e$pl_red$pl_green$pl_blue);
imagebmp($im_paint02e$exact_col_img);


$en 'Existing color';

echo 
'<br><br>RGB = ( ' $pl_red ', ' $pl_green
 
', ' $pl_blue ' )&nbsp;( ' . $$lang 
 
'&nbsp;)<br><br><br>';
 echo 
$exact_col_img;
 

$en 'Index = ' $pal_ndx;
echo 
'<br>' . $$lang '<br>';
 
 echo 
'<br><img src="' $exact_col_img
 
'" alt="' $exact_col_img '"' ' width="400"><br><br><br><br>';
 

$im_paint02n imagecreate($sx30);
imagecolorallocate($im_paint02n$rp_red$rp_green$rp_blue);
imagebmp($im_paint02n$replcd_col_img);


$en 'Color Replacement';

echo 
'RGB = ( ' $rp_red ', ' $rp_green
 
', ' $rp_blue ' )&nbsp;(&nbsp;' . $$lang 
 
'&nbsp;)&nbsp;<br><br><br>';
 
 echo 
$replcd_col_img '<br><br>';
 
 echo 
'<img src="' $replcd_col_img
 
'" alt="' $replcd_col_img '"' ' width="400"><br><br><br><br>';
 
imagecolorset($im_paint02$pal_ndx$rp_red$rp_green$rp_blue);

imagebmp($im_paint02$nw_img);

$en "New Image";

?>

<?php echo $nw_img?>&nbsp;(&nbsp;<?php echo $$lang?>&nbsp;)
<br><br><img src="<?php echo $nw_img?>
 alt="<?php echo $nw_img?>" width="400">

<?php



?> 

 RESULT   

BMP 005 02 P de Galinhas.bmp

Original image

bmp/BMP 005 02 P de Galinhas.bmp apr

RGB = ( 240, 1, 87 ) ( Existing color )
Index = 15728983

BMP 005 02 P de Galinhas-to be replaced.bmp

bmp/BMP 005 02 P de Galinhas-to be replaced.bmp apr



RGB = ( 255, 255, 255 ) ( Color Replacement ) 

BMP 005 02 P de Galinhas-replaced.bmp

bmp/BMP 005 02 P de Galinhas-replaced.bmp apr

BMP 005 02 P de Galinhas-result.bmp ( New Image )

bmp/BMP 005 02 P de Galinhas-result.bmp apr

  3 EXERCISE   

<?php

$lang 
'en';

$tst_img "png/PNG 032 03 Fátima.png";
$exact_col_img "png/PNG 032 03 Fátima.png-to be replaced.png";
$replcd_col_img "png/PNG 032 03 Fátima.png-replaced.png";
$nw_img "png/PNG 032 03 Fátima.png-result.png";

$pl_red 192;
$pl_green 218;
$pl_blue 238;
$pl_alpha 38;

$rp_red 255;
$rp_green 255;
$rp_blue 255;
$rp_alpha 38;


echo 
$tst_img?><br><br>Original image
<br><br><img src="<?php echo $tst_img?>
alt="<?php echo $tst_img?>" width="400"><br><br>

<?php

$im_paint03 
imagecreatefrompng($tst_img);
$sx imagesx($im_paint03);

$pal_ndx imagecolorexact($im_paint03$pl_red$pl_green$pl_blue);

if (
$pal_ndx == -1)
{

$im_paint03e imagecreate($sx30);
imagecolorallocate($im_paint03e$pl_red$pl_green$pl_blue);
imagepng($im_paint03e$exact_col_img);


$en 'The reported color is not part of the image!';

echo 
'RGB = ( ' $pl_red ', ' $pl_green
 
', ' $pl_blue ' )<br><br>' . $$lang '<br><br>';
 
 echo 
$exact_col_img '<br>';
 
 echo 
'<br><img src="' $exact_col_img
 
'" alt="' $exact_col_img '"' ' Width="400">';
 
 exit();
 
$en 'Index = ' $ndx_exc_pal;
echo 
'<br><br>' . $$lang;
}
else
{
$im_paint03e imagecreate($sx30);
imagecolorallocate($im_paint03e$pl_red$pl_green$pl_blue);
imagepng($im_paint03e$exact_col_img);


$en 'Existing color';

echo 
'<br><br>RGB = ( ' $pl_red ', ' $pl_green
 
', ' $pl_blue ' )&nbsp;( ' . $$lang 
 
'&nbsp;)<br><br><br>';
 echo 
$exact_col_img;
 

$en 'Index = ' $pal_ndx;
echo 
'<br>' . $$lang '<br>';
 
 echo 
'<br><img src="' $exact_col_img
 
'" alt="' $exact_col_img '"' ' width="400" height="40"><br><br><br><br>';
 

$im_paint03n imagecreate($sx30);
imagecolorallocate($im_paint03n$rp_red$rp_green$rp_blue);
imagepng($im_paint03n$replcd_col_img);


$en 'Color Replacement';

echo 
'RGB = ( ' $rp_red ', ' $rp_green
 
', ' $rp_blue ' )&nbsp;(&nbsp;' . $$lang 
 
'&nbsp;)&nbsp;<br><br><br>';
 
 echo 
$replcd_col_img '<br><br>';
 
 echo 
'<img src="' $replcd_col_img
 
'" alt="' $replcd_col_img '"' ' width="400" height="40"><br><br><br><br>';
 
imagecolorset($im_paint03$pal_ndx$rp_red$rp_green$rp_blue$rp_alpha);

imagepng($im_paint03$nw_img);

$en "New Image";

?>

<?php echo $nw_img?>&nbsp;(&nbsp;<?php echo $$lang?>&nbsp;)
<br><br><img src="<?php echo $nw_img?>
 alt="<?php echo $nw_img?>" width="400">

<?php



?> 

 RESULT   

PNG 032 03 Fátima.png

Original image

png/PNG 032 03 Fátima.png apr

RGB = ( 192, 218, 238 ) ( Existing color )
Index = 12638958

PNG 032 03 Fátima.png-to be replaced.png

png/PNG 032 03 Fátima.png-to be replaced.png apr



RGB = ( 255, 255, 255 ) ( Color Replacement ) 

PNG 032 03 Fátima.png-replaced.png

png/PNG 032 03 Fátima.png-replaced.png apr

PNG 032 03 Fátima.png-result.png ( New Image )

png/PNG 032 03 Fátima.png-result.png apr