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.

Kommentare
Einen Kommentar schreiben