Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 16.01.2012, 23:59 Titel: FBIMAGE in Base64-String? |
|
|
Hallo zusammen!
Kleine Frage: Wie würdet ihr ein Freebasic-Image, welches mit IMAGECREATE erstellt wurde in einen Base64-String umwandeln?
Die Base64-Encoder auf die ich bisher gestoßen bin (ich kann ja auch googlen ) können nur Strings in Base64-Strings umwandeln. Ich möchte das aber mit einem Pixel-Datenbereich im Arbeitsspeicher machen..
Wie würdet ihr das machen? |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 17.01.2012, 00:27 Titel: |
|
|
Ein Image ist ein einfacher Block bestimmter Länge im Speicher. Ein String ist prinzipiell das gleiche. Du könntest einen String der gleichen Länge wie das Image erstellen und die Daten von einem Pointer zum anderen laden.
So in der Art mache ich das auch mit UDTs. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.01.2012, 10:31 Titel: |
|
|
kA ob das von der fb-syntax und dem zstring-handling her passt, aber...
Code: |
Type bild
UNION
bilddaten AS FBIMAGE
bildstring AS ZSTRING * $längeVonFBImage
END UNION
|
End Type
Dann zeigen sowohl bilddaten als auch bildstring auf dieselbe Speicherstelle und man kann diese entweder als string oder als bildheader interpretieren. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 17.01.2012, 13:59 Titel: |
|
|
aber ein zstring ist nullterminiert... nicht dass die kodierfunktion dann beim ersten \0 abbricht..? _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 17.01.2012, 14:23 Titel: |
|
|
Die verlinkte Funktion erwartet einen FBString, womit Chr(0) nicht wichtig ist. Natürlich wird das Union (das übrigens auch ohne Type funktionieren würde, wenn man es nicht anonymisiert) so nicht funktionieren. Man muss den Imageptr-Inhalt explizit zuweisen. Dann sollte es aber im Grunde funktionieren. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.01.2012, 17:51 Titel: |
|
|
Flo hat Folgendes geschrieben: | aber ein zstring ist nullterminiert... nicht dass die kodierfunktion dann beim ersten \0 abbricht..? |
Das gilt nur für einen korrekt formatierten ZString. Wenn du "irgendwie" auf den Speicher des ZStrings zugreifst, ist im Allgemeinen nicht sichergestellt, dass der String in irgendeinerweise nullterminiert wird. Ist bei C ja auch nicht so, dass ein char-Array automatisch mit null terminiert wird. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|