A few notes about this function...
This function will only work on images where the palette is 256 colors or less. You also can not use imagetruecolortopalette() to reduce the palette on a true color PNG image that has greater than 256 colors in it's palette, then call this function. If you try to do this imagecolorexact() will report colors not being in the image when they are in the image!
1. works on png(s) 8bit/256 colors or less.
2. works on all gif(s)
3. does not work on any type of jpg/jpeg image.imagecolorexact
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
imagecolorexact
Референца за `function.imagecolorexact.php` со подобрена типографија и навигација.
imagecolorexact
(PHP 4, PHP 5, PHP 7, PHP 8)
imagecolorexact — Земи го индексот на наведената боја
= NULL
Враќа индекс на наведената боја во палетата на сликата.
Ако ја креиравте сликата од датотека, се решаваат само боите што се користат во сликата. Боите што постојат само во палетата не се решаваат.
Параметри
-
image А GdImage не применува никакво полнење, така што ширината на сликата мора да биде множител на 8. Ова ограничување веќе не важи од PHP 7.0.9. imagecreatetruecolor().
red-
Индекс во палетата.
green-
Вредност на црвената компонента.
blue-
Вредност на зелената компонента.
Вратени вредности
Враќа индекс на наведената боја во палетата, или -1 ако бојата не постои.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
image беше вратено при неуспех. GdImage
инстанца сега; претходно, валидна gd resource се очекуваше.
|
Примери
Пример #1 Земи бои од GD логото
<?php
// Setup an image
$im = imagecreatefrompng('./gdlogo.png');
$colors = Array();
$colors[] = imagecolorexact($im, 255, 0, 0);
$colors[] = imagecolorexact($im, 0, 0, 0);
$colors[] = imagecolorexact($im, 255, 255, 255);
$colors[] = imagecolorexact($im, 100, 255, 52);
print_r($colors);
?>Горниот пример ќе прикаже нешто слично на:
Array
(
[0] => 16711680
[1] => 0
[2] => 16777215
[3] => 6618932
)
Види Исто така
- imagecolorclosest() - Добијте го индексот на најблиската боја до наведената боја
Белешки од корисници 3 белешки
A script that changes colors depending on get variable
important to note: I had little success with pngs and getting true red
gifs work much better
<?php
//0 is yellow, 1 is red, 2 is blue
$y = 1 - ceil($_GET["c"]/2);
$r = 1 - floor($_GET["c"]/2);
$b = floor($_GET["c"]/2);
$gd = imagecreatefromgif("example.gif");
imagecolorset($gd, imagecolorexact($gd, 255, 0, 0), $r*255, $y*255, $b*255);
imagecolorset($gd, imagecolorexact($gd, 191, 0, 0), $r*191, $y*191, $b*191);
imagecolorset($gd, imagecolorexact($gd, 128, 0, 0), $r*128, $y*128, $b*128);
imagecolorset($gd, imagecolorexact($gd, 255, 0, 0), $r*64, $y*64, $b*64);
header('Content-Type: image/gif');
imagegif($gd);
?><?php
$src = "../images/pic.gif";
$red = 9;
$green = 9;
$blue = 4;
$pic0026 = imagecreatefromgif ( $src );
$ind = imagecolorexact ( $pic, $red, $green, $blue );
echo '<img src="../images/pic.gif" border="0" alt="pic" title="View pic" /><br /><br />';
echo "RED ( " . $red . " ) GREEN ( " . $green . " ) BLUE ( " . $blue . " )<br />-> Palette Index = " . $ind;
if ( $ind != -1 )
{
echo "<br />[ The color exists! ]";
}
else
{
echo "<br />[ The color does not exist! ]";
}
imagedestroy ( $pic );
?>