Helligkeit eines Bildes erkennen

Mit Hilfe der folgenden Funktion kann die Helligkeit eines Bildes ermittelt werden. Dazu muss allerdings auf dem Webserver die Extension ImageMagick installiert und aktiviert sein.

Der Funktion wird ein Bild übergeben, welches dann auf eine Grösse von 1×1 Pixel runter skaliert wird. Danach wird die Farbe mit getColor() als Array ausgelesen. Die einzelnen Farbwerte werden dann aus dem Array ausgelesen.

Die verschiedenen Helligkeiten der einzelnen Farbkanäle (rot, blau, grün) werden bei der Kalkulation der Helligkeit berücksichtigt.

function bin_ich_ein_helles_bild($imagePath){
    $image = new Imagick($imagePath);
    $image->scaleImage(1, 1, true);
    $pixel = $image->getImagePixelColor(0,0);
    $color = $pixel->getColor();
    //print_r( $color);
        
    // calculate brightness
    $brightness = (($color['r'] * 299) + ($color['g'] * 587) + ($color['b'] * 114)) / 1000;

    // if brighness is > 130 it is bright
    if($brightness > 130) {
        $bild_ist_hell = true;
    } else {
        $bild_ist_hell = false;
    }
    return $bild_ist_hell;
}

Hier der Funktions-Aufruf:

// $bild_url = hier ein Pfad zu deinem Bild
$bild_url = "https://www.w3schools.com/images/picture.jpg";

$img_brightness = "Die Helligkeit des Bildes ist undefiniert";
if(bin_ich_ein_helles_bild($bild_url)==true){
    $img_brightness = "Das Bild ist hell.";
}else{
    $img_brightness = "Das Bild ist dunkel.";    
};
echo $img_brightness;
1 Star2 Stars3 Stars4 Stars5 Stars (1)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert