Maik Görgens: Herausfinden von Höhe und Breite eines Bildes mit GD

Hallo liebe Forumsteilnehmer,

ich habe im folgenden eine Frage zu dem Perl-Modul GD:

ist es möglich, das wenn ich ein Bild über

open(FILEHANDLE,"<bild.png");
$img = GD::Image->newFromPng(FILEHANDLE);
close(FILEHANDLE);

geladen habe, ist es dann irgendwie möglich die Höhe und die Breite von $img herauszufinden.
In der Doku zu GD hab ich nichts entsprechendes gefunden.

Vielen Dank
    Maik Görgens

  1. hallo Maik,

    ist es möglich, das wenn ich ein Bild über

    open(FILEHANDLE,"<bild.png");
    $img = GD::Image->newFromPng(FILEHANDLE);
    close(FILEHANDLE);

    geladen habe, die Höhe und die Breite von $img herauszufinden.

    Natürlich. Lade dir dein Bild in irgendein Bildbearbeitungsprogramm und laß dir die Eigenschaften anzeigen.

    Wichtig ist gar nicht, "ob" du das machen kannst, sondern warum du das machen willst. In deinem Beispiel ist "$img" eine Variable, die du zunächst mit einem bestimmten Inhalt gefüllt hast. Du kannst doch erstmal mit dieser Variablen weiterarbeiten und brauchst dich gar nicht um ihren Inhalt zu kümmern ... erst dort, wo nicht mehr in deinem Script, sondern in der wahrscheinlich beabsichtigten Broswerdarstellung das Bild angezeigt werden soll, wird die Frage nach Breite und Höhe interessant. Existiert dann deine Variable noch und hat sie noch denselben Inhalt ?

    Christoph S.

    1. Hi,

      warum du das machen willst.

      es geht darum, ein Bild einzulesen, und das Pixel für Pixel in eine neue Datei hereinzuschreiben, wobei a für eine Farbe, b für die zweite, c für die dritte usw. steht. Mancheiner (die Meisten) fragen jetzt sicher nach dem Sinn:
      es geht darum, die Bilder nur im abcde usw.-Format zu speichern, sodaß es leichter ist die Bilder zu verändern, weil ich dann nur einmalig die Farbe für a ändere, und der mir alle Bilder auf einmal neuschreibt, was mir viel Arbeit erspart (das hab ich ja auch schon alles).
      Nun geht es darum, abc-Bilder nicht mehr mit dem Texteditor zu schreiben, sondern diese direkt aus einem png, gif etc. zu generieren.

      Da es sich hier um knapp 100 Bilder handelt, halte ich dies für durchaus nicht sinnlos, aber ich lass mich da gern umstimmen ;)

      Ich wollte halt mit zwei ineinander verstrickten for-Schleifen Zeile für Zeile und dann Spalte für Spalte vorgehen, dazu brauch ich aber die Breite und Höhe.

      Falls sich das von grundauf anders (gern auch völlig anders) realisieren lässt, bin ich auch dafür offen.

      Gruß
        Maik Görgens