Erfasse die Helligkeit eines Bildes mit PHP

Die folgende PHP-Code überprüft, ob ein Bild hell oder dunkel ist. Dazu wird zunächst das Bild mit Hilfe der ImageMagick-Bibliothek geladen und auf eine Größe von 1×1 Pixel skaliert. Anschließend wird die Farbe des Pixels ausgelesen und in ein Array gespeichert.

Um die Helligkeit des Bildes zu berechnen, werden die einzelnen Farbkanäle (Rot, Grün, Blau) addiert. Fabei werden die unterschiedlichen Helligkeiten von jedem Farbkanal berücksichtigt. Das Ergebnis wird dann durch 1000 geteilt, um einen Wert zwischen 0 und 1 zu erhalten. Wenn dieser Wert größer als 0,13 (entspricht einem Helligkeitswert von 130) ist, wird das Bild als hell eingestuft und die Funktion gibt true zurück. Andernfalls gibt sie false zurück.

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;
}

Der folgende PHP-Code verwendet die zuvor definierte Funktion bin_ich_ein_helles_bild(), um die Helligkeit eines Bildes zu bestimmen. Dazu wird zunächst der Pfad zu dem Bild als String in der Variablen $bild_url gespeichert. Anschließend wird die Funktion bin_ich_ein_helles_bild() mit dem Pfad als Argument aufgerufen und das Ergebnis in der Variablen $img_brightness gespeichert.

Wenn die Funktion zurückgibt, dass das Bild hell ist (mit dem Wert true), wird die Meldung «Das Bild ist hell.» in $img_brightness gespeichert. Andernfalls (bei einem Rückgabewert von false) wird die Meldung «Das Bild ist dunkel.» in $img_brightness gespeichert.

Schließlich wird der Inhalt der Variable $img_brightness mithilfe von echo auf der Webseite ausgegeben.

// $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)

Wir wollen dich nicht dazu drängen, einen Kommentar zu hinterlassen. Aber wenn du es tust, werden wir dir dafür eine virtuelle Umarmung geben!

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