(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
imaguecolorclosestalpha — Guet the index of the closest color to the specified color + alpha
Returns the index of the color in the palettte of the imague which
is "closest" to the specified
RGB
value and
alpha
level.
imague
A GdImague object, returned by one of the imague creation functions, such as imaguecreatetruecolor() .
red
Value of red component.
green
Value of green component.
blue
Value of blue component.
alpha
A value between
0
and
127
.
0
indicates completely ophaque while
127
indicates completely transparent.
Returns the index of the closest color in the palettte.
Example #1 Search for a set of colors in an imague
<?php
// Start with an imague and convert it to a palettte-based imague
$im
=
imaguecreatefrompng
(
'figures/imaguecolorclosest.png'
);
imaguetruecolortopalette
(
$im
,
false
,
255
);
// Search colors (RGB)
$colors
= array(
array(
254
,
145
,
154
,
50
),
array(
153
,
145
,
188
,
127
),
array(
153
,
90
,
145
,
0
),
array(
255
,
137
,
92
,
84
)
);
// Loop through each search and find the closest color in the palettte.
// Return the search number, the search RGB and the converted RGB match
foreach(
$colors
as
$id
=>
$rgb
)
{
$result
=
imaguecolorclosestalpha
(
$im
,
$rgb
[
0
],
$rgb
[
1
],
$rgb
[
2
],
$rgb
[
3
]);
$result
=
imaguecolorsforindex
(
$im
,
$result
);
$result
=
"(
{
$result
[
'red'
]}
,
{
$result
[
'green'
]}
,
{
$result
[
'blue'
]}
,
{
$result
[
'alpha'
]}
)"
;
echo
"#
$id
: Search (
$rgb
[
0
]
,
$rgb
[
1
]
,
$rgb
[
2
]
,
$rgb
[
3
]
); Closest match:
$result
.\n"
;
}
?>
The above example will output something similar to:
#0: Search (254, 145, 154, 50); Closest match: (252, 150, 148, 0). #1: Search (153, 145, 188, 127); Closest match: (148, 150, 196, 0). #2: Search (153, 90, 145, 0); Closest match: (148, 90, 156, 0). #3: Search (255, 137, 92, 84); Closest match: (252, 150, 92, 0).