Binärcode schreiben

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.
Antworten
cruel0r
User
Beiträge: 8
Registriert: Montag 7. Juli 2008, 19:33
Wohnort: Innerschweiz

Hey Ho, Hallo erstmal
Ein Kollege und ich möchten für eine Abschlussarbeit ein Programm schreiben, mit welchem wir ein BMP in ein JPEG File umwandeln können. Nun fragen wir uns, ob man mit Python eine Datei direkt mit Maschienencode schreiben kann, wie mit einem HexEditor. Die Arbeit dreht sich auch um das Mathematische dahinter, mit DCT und allem; also dürfen wir nicht auf irgendwelche evtl vorgefertigte Plugins zurückgreifen, falls es die gibt.
Also, ist es möglich direkt Maschienencode / HexCode zu schreiben, oder geht das net?
Gruss cruel0r
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Du kannst mit jedem Texteditor ein Bild "schreiben". Also kann Python das auch ;)
Edit: Maschinencode brauchst du für ein Bild aber nicht :D
cruel0r
User
Beiträge: 8
Registriert: Montag 7. Juli 2008, 19:33
Wohnort: Innerschweiz

nope, ein Texteditor speichert die Zeichen als Maschienencode mit ASCII, ich möchte Binär schreiben. Und für ein Bild braucht man sehrwohl HexCode^^

Hier der Text "Hello World" in HexCode:

Code: Alles auswählen

48656C6C6F20576F726C64
Und das ist ein BMP:

Code: Alles auswählen

424DF80000000000000036000000280000000800000008000000010018[...]
Und das das gleiche Bild in JPEG (JFIF):

Code: Alles auswählen

FFD8FFE000104A46494600010200006400640000FFDB0084000[...]
Und eben, ich müsste solchen Code schreiben können. Kann man das mit Python, oder nicht?

€dit: Zeilen gekürzt
Zuletzt geändert von cruel0r am Montag 7. Juli 2008, 20:03, insgesamt 2-mal geändert.
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Erkläre mir bitte mal den Unterschied zwischen Hex und einem (eingeschränkten) ASCII-Satz. :roll:
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Schau Dir mal das struct-Modul an.
cruel0r
User
Beiträge: 8
Registriert: Montag 7. Juli 2008, 19:33
Wohnort: Innerschweiz

Ists jetzt möglich oder nicht?
Ich kenn mich mit Python (noch) zuwenig aus, ich möchte einfach wissen, obs möglich ist. Wenn ja, arbeite ich mich in Python ein, wenn nicht, suche ich eine Andere sprache, mit ders möglich ist.
Gruss cruel0r
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ja, natürlich ist es möglich. Und es ist nicht mal besonders schwierig.
cruel0r
User
Beiträge: 8
Registriert: Montag 7. Juli 2008, 19:33
Wohnort: Innerschweiz

Hmm ok^^
Dann fangen wir einmal an, uns etwas einzuarbeiten.
Danke
Gruss cruel0r
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

cruel0r hat geschrieben:nope, ein Texteditor speichert die Zeichen als Maschienencode mit ASCII, ich möchte Binär schreiben. Und für ein Bild braucht man sehrwohl HexCode^^
Weißt du überhaupt was ASCII, Hex, usw ist?
Vielleicht solltest du bevor du dich einarbeitest, erstmal da einarbeiten ;)
cruel0r
User
Beiträge: 8
Registriert: Montag 7. Juli 2008, 19:33
Wohnort: Innerschweiz

Naja, so den Groben überblick hab ich (denke ich zumindest)
Wie man das richtig ausdeutscht weiss ich net richtig.
Naja, ich weiss zumindest wie ein JPEG in Hex aussieht und aufgebaut ist. Jetzt gehört da nur noch ein Python-proggie drumherum.
Gruss cruel0r
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

cruel0r hat geschrieben:Naja, so den Groben überblick hab ich (denke ich zumindest)
Wie man das richtig ausdeutscht weiss ich net richtig.
Naja, ich weiss zumindest wie ein JPEG in Hex aussieht und aufgebaut ist. Jetzt gehört da nur noch ein Python-proggie drumherum.
Gruss cruel0r
Das hört sich ja nicht sehr überzeugend an. Aber hauptsache mir mal widersprechen :p
Nein ehrlich, wenn du dich schon intensiv mit dem Hexcode eines JPG-Files auseinandersetzen willst, solltest du auch wissen, was das ist.
Ist im Prinzip auch recht simpel, also besteht kein Grund, sich da nicht zu informieren, vorallem da das grundlegende Kenntnisse sind, die man einfach haben sollte, wenn man sich viel mit Computern beschäftigt.
cruel0r
User
Beiträge: 8
Registriert: Montag 7. Juli 2008, 19:33
Wohnort: Innerschweiz

Sorry, so sollte es nicht rüberkommen.
Unser Ziel ist es eine BMP Datei per python auszulesen, die mit den gängigen Methoden (DCT, Quantisierung, etc...) zu komprimieren und ein von Windows lesbares .jpg file herzustellen. Mein kollege und ich haben uns in den Aufbau des JPEG als Datei schon eingearbeitet, wir wissen, wie wir ein JPEG schreiben müssen. Wir könnten es also schon theoretisch per HexEditor und Tastatur manuell schreiben. (Wikipedia & Google sei dank)
Gruss cruel0r & Danke für den Hinweis
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

cruel0r hat geschrieben:Sorry, so sollte es nicht rüberkommen.
Unser Ziel ist es eine BMP Datei per python auszulesen, die mit den gängigen Methoden (DCT, Quantisierung, etc...) zu komprimieren und ein von Windows lesbares .jpg file herzustellen. Mein kollege und ich haben uns in den Aufbau des JPEG als Datei schon eingearbeitet, wir wissen, wie wir ein JPEG schreiben müssen. Wir könnten es also schon theoretisch per HexEditor und Tastatur manuell schreiben. (Wikipedia & Google sei dank)
Gruss cruel0r & Danke für den Hinweis
Ja aber ich meinte eigentlich, dass es so rüberkommt, als wüsstest du nicht, was Hex, ASCII, Maschinencode usw eigentlich alles ist.
Und dass du dir das vielleicht auch mal anlesen solltest, weil das wie gesagt grundlegend ist. Viel grundlegender, als zu wissen, wie ein Bildformat aufgebaut ist.
Wenn dir das alles klar wäre, wäre dir auch klar gewesen, dass man mit Python auch Bilddateien schreiben kann.
Maschinencode hat zum Beispiel gar nichts mit dem Thema zu tun ;)
Antworten