EisFuX: Grafik-Daten-Formate

Beitrag lesen

(Hallo|Hi(ho)|Tag) Tom,

könnt Ihr mir weiterhelfen, um Musterbilder zu finden für die in der GD-LIB erkannten Typen?
Nee, nee, nee -- hier steig ich aus. Es wäre mir neu, dass die GD-Lib
IFF-Grafiken unterstützen würde.
Das hat auch keiner behauptet.

Ich will nur erstmal getimagesize() quälen.

Gut, es gibt ja einen Unterschied zwischen "erkennen" und "unterstützen". ;-)

Aber getimagesize() gehört ja auch nicht zur GD-Lib-Erweiterung sondern
direkt zu PHP. Steht zumindest so im Handbuch.

BMP-Format habe ich schon gebaut. Da gab es eine recht brauchbare Vorlage in den PHP UCN. Die ist aber noch fehlerhaft bzw. nicht vollständig. Soweit habe ich's also repariert...
Ich kann bisher aber noch kein compressed BMP verarbeiten, aber 1, 8, 16, 32-Bit

Es gibt (glaube ich wenigstens) zwei Kompressions-Arten bei Windoze-BMPs.
Die eine ist ein simpler Byte-Run-Algorhitmus, die andere ist etwas
komplizierter, kommt aber sehr selten vor. Aber sowas in PHP zu basteln ist
nicht ganz trivial (noch dazu, wo du unpack() nicht magst ...). Ich hatte
das mal mit IFF/ILBM versucht, aber das mit dem Entpacken war mir dann
zu doof. Der Rest funktionierte ganz gut (das IFF-Format ist auch
idioten-freundlich aufgebaut).

Das Gleiche für uncompressed TIFF ist im Entstehen.

Öhm, für TIFF gilt Ähnliches wie für IFF: Beide sind "Dach-Formate" für
allerlei Unterformate.

Einen SWF-Reader hatte ich hier doch auch schon mal vorbeifliegen sehen, finde aber den Thread nicht wieder.

In reinem PHP? Das würde mich dann aber auch interessieren.
Soweit ich weiß, handelt es sich beim von GD-Lib unterstützten SWF
lediglich um Flash-Bilder.

Ich wüsste dann gerne noch, was xpm ist und wer das verwendet.

Es ist eine verbesserte Variante von XBM:
http://de.wikipedia.org/wiki/XPM

Was Datei-Formate angeht, schau mal bei wotsit.org vorbei. Die haben eigentlich
zu allem was parat. Fast wie bei Obi ... ;-)
Auch Wikipedia (notfalls auf Englisch) bietet mittlerweile zu den
angefragten Grafik-Formaten Brauchbares.

Außerdem fehlt mir dafür eine Konstante. Was liefert getimagesize() für ein xpm-Bild?

Bei mir (WinXP, PHP 5.2.x): 16.

Ich hab da eine Funktion namens const_dump() für selbstzubauende
Kompatibilitäts-Funktionen. Der übergebe ich einen PCRE, und sie
liefert mir allen passenden Einträge in der PHP-Konstantenliste,
gleich als fertigen PHP-Quellcode. Nicht schön, aber funktioniert:

  
define('CRLF', "\r\n");  
define('EMPTY_STRING', '');  
  
/// dumps PCRE-filtered definition list  
function const_dump(  
  $rx = EMPTY_STRING  
) {  
  if ( empty($rx) ) $rx = '//';  
  
  $dc = get_defined_constants();  
  // filter  
  foreach ($dc as $const => $val) {  
    if ( !preg_match($rx, $const) ) unset( $dc[$const] );  
  }  
  
  // get max length  
  $max_len = 0;  
  foreach ($dc as $const => $val) {  
    if ( ( $const_len = strlen($const) ) > $max_len) $max_len = $const_len;  
  }  
  
  ksort($dc);  
  
  // output  
  $out = EMPTY_STRING;  
  foreach ($dc as $const => $val) {  
    $fill = str_repeat(' ', $max_len - strlen($const) );  
    $out .= sprintf('@define(\'%s\'%s, %s);%s', $const, $fill, is_numeric($val) ? $val : sprintf('\'%s\'', $val), CRLF);  
  }  
  return $out;  
}  
  
printf('<pre>%s</pre>',  const_dump('/IMG/') );  

MffG
EisFuX