PHP: PPM-Reader

(Kommentare: 0)

Einfache PHP-Klasse zum Einlesen von PPM-Bild-Dateien (PNM, PPM, PGM, PBM). Nicht besonders elegant, aber hat bisher all meine PPM-Dateien korrekt eingelesen.

Mehr Infos zum Format siehe NetPBM.

 <?php

 /** Class to read ppm, pnm, pgm, pbm images.
   */
class PpmImageReader {

    public function PpmImageReader() {
    }
    
    public function getType();
    
    /** Returns true iff this reader can read given file (at least file extension should be
      * checked.
      * @return bool True if reader can read file, false otherwise
      */
    public function canRead($filename);
    
    /** Reads ppm/pbm/pgm file and returns array with 6 elements: type name, image resource, width, height, dpi for x, dpi for y.
      * Dpi values might be 0 if file format does not provide dpi or other resolution information.
      */
    public function read($filename);
    
}

?>


Vollständiger Code zum Download: PpmImageReader.php.

Anmerkungen:

  • Nicht wundern über die Rückgabewerte der read-Methode (z.B. DPI-Wert, den PPM gar nicht vorsieht), ich habe die Klasse hier herausgenommen aus einem Paket mit mehreren ImageReader-Klassen, die zum Teil sehr wohl diese Werte zurückgeben können.
  • In der o.g. Dokumentation wird gesagt, dass die Farbwerte nicht (notwendigerweise) RGB-Werte sein müssen bzw. nicht-linear seien etc. Hab ich nicht verstanden, nicht implementiert und alle PPM-Bilder, die mir bisher über den Weg gelaufen sind, hatten dieses Problem nicht. Der Code ist im Grunde auch schon recht alt, war mal ein Perl-Skript für ein Unix-System, dessen man-Page seinerzeit auch nur von RGB bzw. einem linear runter-skalierten Farbraum gesprochen hatte.



Zurück

Kommentare

Einen Kommentar schreiben