PHP Doku:: Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu - function.imagecolorresolve.html

Verlauf / Chronik / History: (50) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzBildverarbeitung und -generierungBildbearbeitung und GDGD- und Image-Funktionenimagecolorresolve

Ein Service von Reinhard Neidl - Webprogrammierung.

GD- und Image-Funktionen

<<imagecolormatch

imagecolorresolvealpha>>

imagecolorresolve

(PHP 4, PHP 5)

imagecolorresolve Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu

Beschreibung:

int imagecolorresolve ( resource $im , int $red , int $green , int $blue )

Diese Funktion ermittelt garantiert einen Farb-Index zu der angegebenen Farbe, nämlich entweder den exakten oder den nächst möglichen Wert.

Siehe auch imagecolorclosest() und imagecolorexact().


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
ceo at l-i-e dot com
3.01.2002 12:55
Okay, so sometimes it's really IMPORTANT to get the exact color you want, only it's not *IN* the Image, and ImageColorResolve just isn't "close enough".

The following code is a disgustingly gross hack, rather slow, but it does that.

$colorcount = array();
for ($x = 0; $x < $width; $x++){
    for ($y = 0; $y < $height; $y++){
        $colorindex = imagecolorat($jpg, $x, $y);
        if (!isset($colorcount[$colorindex])){
            $colorcount[$colorindex] = 1;
        }
        else{
            $colorcount[$colorindex]++;
        }
    }
}
asort($colorcount);
reset($colorcount);

$black = imagecolorexact($jpg, 0, 0, 0);
if ($black == -1){
    $goner = key($colorcount);
    $rgb = imagecolorsforindex($jpg, $goner);
    #error_log("Need black: About to kill $goner ($rgb[red], $rgb[green], $rgb[blue]) which was only used in $colorcount[$goner] pixels", 0);
    unset($colorcount[$goner]);
    imagecolordeallocate($jpg, $goner);
    $black = imagecolorallocate($jpg, 0, 0, 0);
}
if ($black == -1){
    $black = imagecolorresolve($jpg, 0, 0, 0);
    #error_log("Damn!  STILL couldn't allocate the color!", 0);
}



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)