Start · Sprachen · PHP · Referenz · ImagickPixelIteratorException

ImagickPixelIteratorException

Klasse

Wird ausgelöst, wenn bei der Verwendung von <code>ImagickPixelIterator</code> ein Fehler auftritt.

seit PHP 2.0.0 Kategorie: error

Signatur

class ImagickPixelIteratorException extends ImagickException

Beschreibung

ImagickPixelIteratorException ist eine spezialisierte Ausnahme-Klasse, die von der ImagickException erbt und speziell für Fehler im Zusammenhang mit dem ImagickPixelIterator vorgesehen ist. Sie ermöglicht eine gezielte Fehlerbehandlung beim Durchlaufen von Pixeln eines Bildes.

Ein ImagickPixelIterator wird verwendet, um pixelweise über ein Bild zu iterieren, etwa um Farben auszulesen oder zu manipulieren. Kommt es dabei zu ungültigen Operationen – zum Beispiel durch Iteration über ein ungültiges Bild, falsches Zurücksetzen des Iterators oder Zugriff außerhalb der Bildgrenzen – wirft die Imagick-Erweiterung eine ImagickPixelIteratorException.

Da ImagickPixelIteratorException von ImagickException erbt, welche selbst von der Standard-PHP-Klasse Exception erbt, kann sie sowohl spezifisch als auch allgemein abgefangen werden. Für robuste Bildverarbeitungs-Anwendungen empfiehlt sich stets ein try/catch-Block bei der Arbeit mit dem ImagickPixelIterator.

Die Klasse selbst fügt keine zusätzlichen Methoden oder Eigenschaften hinzu – sie dient ausschließlich der semantischen Unterscheidung des Fehlertyps innerhalb der Imagick-Klassenhierarchie.

Beispiele

Fehlerbehandlung beim Iterieren über Pixel

<?php
try {
    $imagick = new Imagick('bild.png');
    $iterator = $imagick->getPixelIterator();

    foreach ($iterator as $pixels) {
        foreach ($pixels as $pixel) {
            $color = $pixel->getColor();
            echo "R: {$color['r']}, G: {$color['g']}, B: {$color['b']}\n";
        }
        $iterator->syncIterator();
    }
} catch (ImagickPixelIteratorException $e) {
    echo 'Pixel-Iterator-Fehler: ' . $e->getMessage();
} catch (ImagickException $e) {
    echo 'Allgemeiner Imagick-Fehler: ' . $e->getMessage();
}

Gezieltes Abfangen bei ungültigem Iterator-Zugriff

<?php
try {
    $imagick = new Imagick();
    // Kein Bild geladen – Iterator-Erstellung schlägt fehl
    $iterator = new ImagickPixelIterator($imagick);
} catch (ImagickPixelIteratorException $e) {
    echo 'ImagickPixelIteratorException gefangen: ' . $e->getMessage() . PHP_EOL;
    echo 'Code: ' . $e->getCode() . PHP_EOL;
}
ImagickPixelIteratorException gefangen: Can not get pixel iterator on empty wand Code: 0

// Wichtig · Fallstricke

Die Klasse ist Teil der Imagick-PECL-Erweiterung und steht nur zur Verfügung, wenn diese installiert und aktiviert ist. Sie wurde nicht in die PHP-Kernbibliothek aufgenommen. Achte bei der Fehlerbehandlung darauf, ImagickPixelIteratorException vor dem allgemeineren ImagickException zu fangen, da sonst der spezifische Typ nicht unterschieden werden kann.