Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - PNG-Grösse in Console Application einlesen
walter_b - Di 12.05.09 09:39
Titel: PNG-Grösse in Console Application einlesen
Hello world!
Ich stehe vor folgendem Problem: Ich habe eine Console Application und möchte dort die Höhe und die Breite eines PNG-Bildes einlesen, allerdings habe ich keine Ahnung, wie ich das hinkriege.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var F : text; s : string;
[...]
write('Input file name to read : '); readln(s); assign(F,s); reset(F); while not EOF(F) do begin readln(F,s); writeln(s); end; close(F); |
So habe ich es bisher versucht, jedoch kann das Programm das Bild natürlich nicht als Textdatei lesen, bzw. es wird nur "ëPNG" ausgegeben. Wie muss ich das anstellen?
Vielen Dank!
Reinhard Kern - Di 12.05.09 09:45
walter_b hat folgendes geschrieben : |
Hello world!
Ich stehe vor folgendem Problem: Ich habe eine Console Application und möchte dort die Höhe und die Breite eines PNG-Bildes einlesen... |
Hallo,
die nötigen Infos über das PNG-Format findest du u.a. hier:
http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.IHDR
Gruss Reinhard
walter_b - Di 12.05.09 10:01
Vielen Dank für den Link. Ich habe mir mal einen Überblick verschafft, jedoch alles was ich gefunden habe, ist, dass im IHDR-Teil des PNG die Informationen sind, die ich brauche. Doch wie bringe ich diese Infos raus? Habe leider keine Idee, wie ich das angehen könnte.
BenBE - Di 12.05.09 10:49
Wer sagt, dass Du die PNG-Komponenten\Klassen nicht auch in einer Konsolen-Anwendung nutzen kannst?
walter_b - Di 12.05.09 13:15
hm... ich steh wohl gerade voll auf der Leitung... Wie soll ich denn die PNG-Komponenten benützen, bzw. ansprechen?
---
Moderiert von
Narses: Beiträge zusammengefasst---
Ok, hat sich erledigt, habe es auf eine andere Art lösen können.
Marc. - Di 12.05.09 15:21
walter_b hat folgendes geschrieben : |
| Ok, hat sich erledigt, habe es auf eine andere Art lösen können. |
Und wie? :)
walter_b - Do 14.05.09 10:36
Mit folgender Funktion:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| FUNCTION DimPNG(dateiname: STRING; pos: LONGINT): INTEGER; VAR f : FILE OF BYTE; d : INTEGER; bytewert : BYTE; BEGIN ASSIGN(f,dateiname); RESET(f); SEEK(f,pos); read(f,bytewert); d := bytewert*256; read(f,bytewert); CLOSE(f); DimPNG := d + bytewert; END; |
Und aufgerufen mit diesen zwei Zeilen:
Delphi-Quelltext
1: 2:
| Writeln(DimPNG(pngfile,18)); writeln(DimPNG(pngfile,22)); |
gibt es wunderschön die Höhe, Respektive die Breite.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!