Start · Sprachen · PHP · Referenz · ImagickPixelException

ImagickPixelException

Klasse

Wird ausgelöst, wenn ein Fehler im Zusammenhang mit einem <code>ImagickPixel</code>-Objekt auftritt.

seit PHP 2.0.0 Kategorie: error

Signatur

class ImagickPixelException extends Exception

Beschreibung

ImagickPixelException ist eine spezialisierte Ausnahmeklasse der Imagick-Erweiterung, die bei Fehlern rund um Pixeloperationen geworfen wird. Sie erweitert die Standard-Exception-Klasse und ermöglicht damit eine gezielte Fehlerbehandlung für ImagickPixel-Operationen.

Typische Auslöser sind ungültige Farbwerte, fehlerhafte Farbraumkonvertierungen oder nicht unterstützte Farbformate beim Erstellen oder Manipulieren eines ImagickPixel-Objekts. Da ImagickPixelException von Exception erbt, stehen alle üblichen Methoden wie getMessage(), getCode() und getTrace() zur Verfügung.

Es empfiehlt sich, bei der Arbeit mit ImagickPixel stets einen try/catch-Block zu verwenden und ImagickPixelException gezielt abzufangen, um Fehler in der Farbverarbeitung sauber von anderen Imagick-Fehlern zu trennen. Für allgemeinere Imagick-Fehler existiert zusätzlich die Klasse ImagickException.

Beispiele

Ungültigen Farbwert abfangen

<?php
try {
    // Ungültiger Farbname führt zu einem Fehler
    $pixel = new ImagickPixel('kein-gültiger-farbname-xyz');
    echo 'Farbe: ' . $pixel->getColorAsString();
} catch (ImagickPixelException $e) {
    echo 'ImagickPixel-Fehler: ' . $e->getMessage() . PHP_EOL;
    echo 'Fehlercode: ' . $e->getCode() . PHP_EOL;
} catch (ImagickException $e) {
    echo 'Allgemeiner Imagick-Fehler: ' . $e->getMessage() . PHP_EOL;
}
ImagickPixel-Fehler: unrecognized color `kein-gültiger-farbname-xyz' @ error/color.c/QueryColorCompliance/...

Gezielte Fehlerbehandlung bei Pixelvergleich

<?php
function vergleicheFarben(string $farbe1, string $farbe2): float {
    try {
        $pixel1 = new ImagickPixel($farbe1);
        $pixel2 = new ImagickPixel($farbe2);
        return $pixel1->getColorDistortion($pixel2, Imagick::METRIC_ABSOLUTEERRORMETRIC);
    } catch (ImagickPixelException $e) {
        // Gezieltes Abfangen von Pixel-spezifischen Fehlern
        error_log('Fehler bei Farbverarbeitung: ' . $e->getMessage());
        throw new RuntimeException('Ungültiger Farbwert übergeben.', 0, $e);
    }
}

try {
    $distanz = vergleicheFarben('red', 'blue');
    echo 'Farbabstand: ' . $distanz . PHP_EOL;

    // Fehlerfall
    $distanz2 = vergleicheFarben('red', 'ungueltig!!!');
} catch (RuntimeException $e) {
    echo 'Laufzeitfehler: ' . $e->getMessage() . PHP_EOL;
    echo 'Ursprünglicher Fehler: ' . $e->getPrevious()->getMessage() . PHP_EOL;
}
Farbabstand: 0 Laufzeitfehler: Ungültiger Farbwert übergeben. Ursprünglicher Fehler: unrecognized color `ungueltig!!!' @ error/color.c/...

// Wichtig · Fallstricke

Verfügbarkeit: ImagickPixelException ist nur verfügbar, wenn die Imagick-PHP-Erweiterung installiert und aktiviert ist. Sie ist nicht Teil des PHP-Kerns.

Hierarchie: Beim Abfangen mehrerer Imagick-Ausnahmen sollte ImagickPixelException vor ImagickException und Exception stehen, da PHP den ersten passenden catch-Block verwendet. Andernfalls würde ein allgemeinerer Handler zuerst greifen.

Fehlercode: Der über getCode() zurückgegebene Wert entspricht dem internen ImageMagick-Fehlercode, der für eine detailliertere Fehlerdiagnose herangezogen werden kann.