Forum: Mikrocontroller und Digitale Elektronik Bitmap to Hex mit Gimp


von nur probleme (Gast)


Angehängte Dateien:

Lesenswert?

Ich wurde gebeten einen neuen Beitrag zu eröffnen, weil der alte
Beitrag "Bitmap zu Hex"
schon ne weile her ist.

Nun habe ich also versucht ein kleines Bild 34*50 Pixel in einer C datei 
zu speichern. -> Hat funktioniert, nur speichert Gimp das ganze (so weit 
ich es sehe) als String ab.

Im Internet stand dann dran, dass ein String auch eine Art Array sei. 
Also habe ich mal versucht diese Angaben zu deuten.

Hier mal der Anfang aus der erstellten C datei von Gimp:

unsigned char   pixel_data[34  50  2 + 1] = {
  34, 50, 2,
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\336\37 
7"
  "\336\377\275\377\234\377{\367[\367\32\357\32\357\331\346\230\336x\336\3 
30"
...};

nun zu meiner bestimmt falschen Deutung:

\ = Anfang von einem neuen zusammenhängenden Zeichensatz ?

3 = erstes Zeichen das als ASCII "51" gelesen wird ?

7 = zweites Zeichen ASCII "55" ?

7= drittes ebenfalls 55 ?

und dann jedes dieser Zeichen sozusagen als 1 Byte interpretiert wird?

im Anhang das ganze Ding :/

von dummy (Gast)


Lesenswert?

>nun zu meiner bestimmt falschen Deutung:

Sie ist falsch.

\377 ist ein einziges Byte in octaler Schreibweise.
Hier also 255.

von nur probleme (Gast)


Lesenswert?

sieht man das an diesem "\" ? will nur versuchen bisschen was zu lernen 
=)

von nur probleme (Gast)


Lesenswert?

da sind nämlich auch noch andere sachen drin :/ z.B.
\336U
\367[
\367|\367\\\367

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Kauf Dir ein C-Buch. Bis Du sämtliche Fragen, die Du noch stellen wirst, 
um endlich diesen String in "Hex" zu verwandeln, befriedigend 
beantwortet bekommen und auch verstanden hast, hast Du längst das C-Buch 
durch.

Du willst nämlich in Wirklichkeit gar keine Hex-Strings. Dein Gerät, wo 
Du das Bild schlussendlich darstellen willst, versteht nämlich überhaupt 
keine Hex-Strings, sondern muss mit binären Daten gefüttert werden. 
Hex-Strings sind für Menschen, nicht für Geräte.

von nur probleme (Gast)


Lesenswert?

ja kann den Beitrag auch anders nennen... geht doch nur um die Werte. 
Oktal passt doch auch. Nur die Buchstaben sagen mir nichts. Ebenso wenn 
ich nach String c# suche und den operator oder was auch immer das ist 
"\".

von dummy (Gast)


Lesenswert?

>Ebenso wenn ich nach String c# suche und den operator oder was auch
>immer das ist "\".

Such nach

escape characters

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

nur probleme schrieb:
> Nur die Buchstaben sagen mir nichts.

Google Eingabe: man ascii

1. Treffer.

Du eignest Dir durch diese Methode tröpfchenweise Halbwissen an. Das 
bindet eine Menge Resourcen.... nicht nur auf Deiner Seite.

von nur probleme (Gast)


Lesenswert?

Wie dummy bereits erklärt hat und sonst noch zum nachlesen:

http://de.wikipedia.org/wiki/Escape-Sequenz

da steht es in der Tabelle -> "\ooo" wird als Oktalwert gedeutet.

Dann gibt es weitere Kombinationsmöglichkeiten für hex->Tabelle.
Aber die fangen alle mit einem "\u..." oder "\x..." an.

Und die man ascii ist perfekt wenn man die Werte gleich ablesen will.

Aber das klärt immer noch nicht die Sachen

\346q\325n\

\377 =   3 * 8^2 + 7 * 8^1 + 7 * 8^0
     =   192     +    56   +  7
     =   255
wie bereits geschrieben

aber

\346q = ?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

nur probleme schrieb:
> \346q = ?

Nochmal: man ascii

Da findest Du den Wert für den Buchstaben q in Hex, oktal, dezimal.

\346q ist dasselbe wie \346\161 im String. Der Autor wollte beim Output 
lediglich ein paar Bytes sparen.

Aber was soll das???

Willst Du den String jetzt mit einem weiteren C-Programm parsen oder was 
sollen Deine Fragen? Dein Bild ist bereits im C-String kodiert und Du 
kannst die Daten bereits im Programm nutzen.

von dummy (Gast)


Lesenswert?

>\346q = ?

\346 = 230

und q ist q ist q = 113 als Byte.
Das sind zwei Bytes. \346 ist eins und 'q' ist eins.
Raffst du das jetzt?

von nur probleme (Gast)


Lesenswert?

ja jetzt raffe ich es. Vielen Dank!

von npn (Gast)


Lesenswert?

dummy schrieb:
> Raffst du das jetzt?

Wer die Oktalschreibweise noch nicht gesehen hat, den muß man nicht so 
anpflaumen. Oder hast du schon alles von Geburt an gewußt?

von Georg (Gast)


Lesenswert?

npn schrieb:
> Oder hast du schon alles von Geburt an gewußt?

Geboren wird man heute binär oder hex, octal ist nicht mehr üblich.

Georg

von npn (Gast)


Lesenswert?

Georg schrieb:
> Geboren wird man heute binär oder hex, octal ist nicht mehr üblich.

Okay, iss'n Argument :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.