RTF mit Grafik

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 392
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

RTF mit Grafik

Beitrag von Armin »

Hallo zusammen,

ich will an einen RTF-Text ein Bild (bmp) anhängen. Laut MS-RTF-Spezifikation sieht das dann ungefähr so aus:

\pict <data>

Wie bringe ich das Bild in ein hexadezimal-Format? Ich hab´s mit oBmp:setBuffer() versucht... ist das der richtige Weg?

// Unterschrift als Bild laden und an RTF anhängen
oBmp := XbpBitmap():new()
oBmp:loadFile(BILD1.BMP")
cBmp := oBmp:setBuffer()
cHexBmp := StrToHex( cBmp)
cText += "\pict "+cHexBmp

Grüsse, Armin :?:
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Armin,

ich habe das noch nicht probiert, aber ich würde nach der Beschreibung statt ein XbpBitmap Object zu nutzen (was weis ich was die intern machen) die BMP Datei direkt in einen String einlesen und dann in HEX umwandeln:

Code: Alles auswählen

cBMP := strToHex(memoread(cBild))
da du die Tools ja offensichtlich hast, wäre FileStr(cBild) sicherer.
Gruß
Hubert
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 392
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Armin »

Hallo Hubert,

danke,

stand ich mal wieder im Wald... Armin :wink:
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 392
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Armin »

Hallo Hubert,

ich habe es jetzt mit cBMP := strToHex(memoread(cBild)) getestet.

In cBMP steht ""BM■# ..."

cHexBmp:=StrToHex(cBmp)

In cHexBmp steht dann cBmp auch in Hex.

Das "..." und dann fertig. kann doch eigentlich nicht sein - das kam auch aus oBmp:setbuffer().

Stimmt etwas in dem Bmp nicht oder mache ich da was falsch?

Beste Grüsse, Armin
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 392
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Armin »

Hallo,

die Anzeige eines Strings im Debugger zeigt die "..." - bei zu langen Strings - es scheint schon der richtige String anzukommen - nur es druckt noch nicht.
Hmm, ich wühle nochmals in den RTF-Spezifikationen.
Vielleicht liegt es auch an der \pict Anweisung.

Grüsse, Armin
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

ich habe mal ein paar Tests durchgeführt:

1. MemoRead() hat bei mir immer richtig gelesen und nichts verändert, obwohl ich charset auf OEM habe. Die Testdatei hatte chr(0) und chr(26) und dennoch war das Ergebnis ok.

2. cBmp := memoread("bild.bmp") lädt die Datei unverändert in den String und wenn man diesen anzeigen läßt, beginnt der immer mit "BM" dann irgendwelche Zeichen, dann chr(0) dann eine "6" und dann im Rest je nach Bild wieder irgendwelche Zeichen, je nach Farbe.

3. cHexBmp := StrToHex(cBmp) führt dann zu dieser Anzeige "424D..00000000000036....." die ... stehen für unterschiedliche Zahlen. 424D entspricht dem "BM" ...

Somit muss dein Problem in der RTF Umsetzung liegen, ich versuche es eben mal ...

In Wordpad direkt als Bitmap-Objekt eingefügt, erscheint meine Bitmap etwas seltsam als:

Code: Alles auswählen

...
{\object\objemb{\*\objclass Paint.Picture}\objw1709\objh1191{objdata
01050000
02000000
07000000
50427275736800
00000000
00000000
801a0000
424de1a0......  das ist die Bitmap ...
ob man es auch ohne Object hinbekommt weiß ich nicht, ich kenne mich nicht mit RTF Format aus. objw und objh stehen wohl für Breite und Höhe, ob es Pixel sind ? Die Datei war eigentlich recht klein.
Gruß
Hubert
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 392
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Armin »

Hallo Hubert,

vielen Dank - ich hab´s aber trotzdem noch nicht geschafft. Habe jetzt den halben Tag dran rum gemacht...

Die Microsoft-Spezifikation ist aber auch erschlagend.

Naja, ich darf am Freitag wieder weitermachen...

Grüsse, Armin
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Armin hat geschrieben:Die Microsoft-Spezifikation ist aber auch erschlagend.
ich habe sie mir auch mal angesehen :dark1: und bin immer noch ratlos :(
Gruß
Hubert
Antworten