Modul für Bildinfo's

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Ich such gerade ein Modul , mit dem ich die Headerinfo's aller gänginen Bildformate auslesen kann. Soll heißen, ich möchte die Anzahl der Pixel in Breite und Höhe, sowie andere Headerangaben von Formaten wie JPEG, Gif, Bmp, tif, etc. auslesen können,. Kennt ihr da was?
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Hi Milan

hilft dir das Modul imghdr weiter? Habe selbst damit noch nicht gerabeitet.

http://www.python.org/doc/current/lib/m ... mghdr.html

Wenn du Linux einsetzt, würde sich der Einsatz von ImageMagick empfehlen.

Code: Alles auswählen

identify -format "%h %w" RicmanX.jpg
ermittelt z. B. die Höhe und die Breite (in Pixel) des Images.

Jans
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Es müsste halt in irgend ner Weise mit Python zusammenarbeiten und möglichst Systemunabhängig sein, da nur etwa 80% aller Server auf Linux laufen.

Ne JavaScript Lösung oder ähnliches wäre ja auch gut :)
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Ich habe da mal etwas dafür programmiert. Eigentlich ein viel breiterer Ansatz, um mit Dateiformaten umzugehen. da ich überhaupt kein Feedback :( bekommen hatte und es z.Z. für mich auch ausreicht habe ich es nicht weiterentwickelt. Die Lizenz kann ich natürlich auch ändern z.B. LGPL ...

Hier der Link:

http://www.zope.org/Members/beyond/contentinfo

Wie gesagt wenn daran Interesse besteht kann ich es noch weiterentwicklen (Hilfe erwünscht).

cu beyond
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

@RicmanX

Wenn wir über eine (WEB-) Serverbasierte Lösung sprechen, dann ist Javascript m. E. nicht geeignet, weil du keinen Einfluß auf die lokale Umgebung hast. Script ist nicht eingeschaltet, völlig veraltete Software ist installiert, Version mit properitären Funktionen ist installiert, etc.

Man sollte schon versuchen, das Script auf dem Server laufen zu lassen. Ich weiß aber nicht ob Beispielsweise die Funktion file unter Linux auch in Python definiert ist. Das würde Systemunabhängigkeit bedeuten. Diese Funktion analysiert eine Datei und sagt, was der Inhalt ist. Da kann eine Datei ruhig die Endung .jpg haben und wird trotzdem als Wave, Textdatei, ausführbare Datei oder als was auch immer erkannt.

Hans
Zuletzt geändert von hans am Mittwoch 4. Dezember 2002, 19:51, insgesamt 1-mal geändert.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

nein, so mein ich das nicht... erkennung brauch nur bedingt, ich mein das ich im Beipsiel ein Pythonscript dein bild (http://python.normann-live.de/ksnake.png) die anzahl der Pixel erkennen würde. Bei dir sind's 48 * 48 und das soll ein Modul/funktion liefern... läuft dann auf die Prüfung von Avataren auf akzeptabilität hinaus...
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

die anzahl der Pixel erkennen würde
Genau das kann mein Modul (unter anderem) und es ist serverbasiert.

Hast Du es Dir angesehen?
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

sorry, ich hab dein posting glatt über sehen, weil ich nur recht flüchtig im Unterricht nachgeguckt hatte... :oops:. Ja, jetzt hab ich es mir angesehen, versteh es aber nicht recht. Es reicht bei mir leider nicht mit anwende, weil ich das ganze wie schon irgendwoanders mal gesagt für ein (Schul-)Projekt brauche, bei dem wir alles selbst schreiben müssen, oder erklären können. Ich wär dir sehr dankbar, wenn du mir das Prinzip erklären könntest, ist aber schon mal gut das es wenigstens so was gibt... :D
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Muss jetzt los ...
Ich schreib morgen Abend was über die Funktionsweise.

Bis dann
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Sag mal Milan, in was für eine fortschrittliche Schule gehst du eigentlich? Ich habe bisher immer nur gehört, dass im Informatikunterricht (oder alles was mit Ede Pfau zu tun hat) die Schüler den Lehrer zu unterrichten haben ..... :lol:

Hans
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

www.asgspez.de :)
4 Stunden Info die Woche, wenn man zuhört lernt man nix, kann man sich selbst beibringen. Steht eh alles im Script, zumindest Formeln usw.
Is schon lustig :D

Achja: Math.-Nat. Spezialschulteil :D
BeyondAway

Ich habe mir mal meinen Code wieder angesehen...

Ich würde jetzt einiges anders machen -- die Grundstruktur kann man aber unverändert lassen.

Könntest Du mir etwas genauer erläutern, was Du da alles für die Schule erklären können mußt?
Ich verwende bei diesem Modul verschiedene Python-Tricks und man kommt auch vom Hundertsten in Tausendste. Kannst Du nicht sagen, daß es ein solches Modul gibt mit den Funktion x,y und z? Ich kann mir nicht vorstellen, daß das nicht geht -- denn dann mußt Du eigentlich auch erklären wie z.B. das os bzw. sys Modul geht und folglich die Python-C-Schnittstelle und letzlich auch wie der Python-Interpreter geht ...

Kannst mir sagen was für ein Schulprojekt das ist z.B. ein Link zum Thread?

Wenn Du eine Facharbeit schreibst über das, was mein Modul macht ist es natürlich etwas zu knapp zu sagen, daß es ein fertiges Modul gibt. Dann könntest Du aber schreiben: "Es gab ein Modul, funktioniert so und ich habe es so und so erweitert"

cu beyond
Gast

Ach ja

Schau Dir mal die ausführbare _exec_contentinfo.py an. Die verwendet das Modul soz. als Demo.
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Hm.. sei mal so nett und verate mir, wie/wo ich da ne Datei angebe unter Windows. In IDLE hätt ich jedenfalls keinen Plan wie das gehen sollte.


Also bei ausführen kann ich den Pfad und dahinter den Dateinamen angeben, dann scheints was auszugeben. Nur geht die Konsole dann sofort wieder zu und wie ich das dann als Modul in nem Script nutzen soll frag ich mich immernoch :)
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

In einer Console. Gibts auch bei BuntiClicki.
z.B. Win98 Start->ausführen dann command.com eingeben ENTER.

Dann ins richtige Verzeichnis ... diese Console schließt sich auch nicht nach dem ausführen...

Ich hab's aber nie unter Windoof getestet, da ich normalerweise keins benutze.
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Wir bräuchten das halt Scriptfähig! Egal ob Linux oder Win, Console nützt da nichts... :shock: :)
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Ich verstehe Deine Antwort nicht :?:

- Was zeichnet ein scriptfähiges Modul aus?
- Warum darf die Demo (bzw. schlicht der Funktionstest) von dem Modul nicht in einer Console laufen?
- Wie sollte Deiner Meinung nach eine Demo für ein solches Modul aussehen?

cu beyond
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Naja, ich persönlich bevorzuge ne Demo mit bspw. IDLE oder in HTML Umgebung.
Jedenfalls möcht ich nur wissen, wie ich per Script die Informationen abfrage, also das sie nicht in ner Konsole erscheinen, sondern sowas we n return Wert sind. Also was müsste man dazu in dieser Demodatei ändern?
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

HTML-Umgebung :?: Verwendest Pylets mit Grail oder erwartest Du Dir einen http-Demo-Server?
Ich kenne kein Python-Modul das soetwas macht (abgesehen von Medusa :) ...)

Aber schau doch einfach mal in die Demo-Datei rein. Dafür sollte eine Demo nämlich eigentlich gut sein.

Dort gibt es folgende Zeile

Code: Alles auswählen

data,info = _contentinfo.getContentinfo(file, hard=1, relaxed=0, returnData=1)
Das ist doch ein schöner return-Wert. data enthält den Inhalt der Datei, wenn returnData=1 ist und info enthält die Informationen. Das und der Rest sollte eigentlich selbsterklärend sein.

Code: Alles auswählen

info[2]
ist schließlich noch ein Dictionary mit weiteren Werten z.B. gibt es da (sofern die Werte ermittelt werden können, das ist ja nicht immer gegeben z.B. haben Audiodateien keine Breite und Höhe)

Code: Alles auswählen

info[2]['width']

Code: Alles auswählen

info[2]['height']
cu beyond

PS: Eine passend abgeänderte Demo-Datei interessiert mich jetzt schon.
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

So, nach 20-30min Arbeit und über den Umweg einer Ausgabe in IDLE ;):

http://www.pythonarea.net/module/contentinfo/

Nachtrag von Milan: hab das edidiert, weil ich das Verzeichnis mal verschoben habe...
Antworten