Seite 1 von 1

bild in exe speichern

Verfasst: 15.08.2014 21:13
von Moxl
Hallo an alle :allright:

ich habe folgendes Anliegen:

ich habe ein Fenster wo mehrere Images enthalten sind.
Für die Images werden ja die Bilddateien benötigt, welche jedesmal vorhanden sein müssenm, um die Images zu erstellen.
Jetzt hätte ich aber gerne nur die eine *.exe Datei ohne die anderen Bilddateien.
Kann man es irgendwie anstellen die Bilddateien in den Programmcode zu speichern, sodass man sie nichtmehr mit sich schleppen muss? :mrgreen:

vielen Dank schonmal im Vorraus :allright:

Re: bild in exe speichern

Verfasst: 15.08.2014 21:18
von RSBasic
Selbstverständlich kann man das machen.
Einfach mit Hilfe von IncludeBinary deine Grafik einbinden. Um die eingebundene Grafik nutzen zu können, kannst du mit "?Sprungname" darauf zugreifen.

Beispiel für das Einbinden der Grafik:

Code: Alles auswählen

DataSection
  MyIcon:
    IncludeBinary "Images\Icon.ico"
EndDataSection
Beispiel für das Laden der eingebundenen Grafik:

Code: Alles auswählen

CatchImage(1, ?MyIcon)

Re: bild in exe speichern

Verfasst: 15.08.2014 21:32
von Moxl
ahhh wunderbar :bounce:

und so schön einfach :mrgreen:


vielen dank :allright:

Re: bild in exe speichern

Verfasst: 25.06.2016 12:39
von derschutzhund
Das Thema ist zwar schon etwas älter, aber doch immer noch aktuell!

Ich habe mein gif nun eingebunden mit:

Code: Alles auswählen

DataSection
  MyIcon:
  IncludeBinary "C:\PureBasic\3DP-VarioGCode\ws-logo.gif"
EndDataSection
und geladen mit

Code: Alles auswählen

CatchImage(1, ?MyIcon)
was mir nicht gelingt ist die Anzeige mit

Code: Alles auswählen

   url$="about:<html><body scroll='no' leftmargin='0' topmargin='0'><img src='1'></img></body></html>"
   SetGadgetText(WebView_1,url$)
Kann mir jemand sagen wie es angezeigt werden kann?

LG

Wolfgang

Re: bild in exe speichern

Verfasst: 25.06.2016 12:44
von RSBasic
@derschutzhund
Willkommen zurück :allright:

Du versuchst, zwei verschiedene Sprachen (PB und HTML) zu mischen. Das geht nicht. Du kannst die Image-Nummer von PB nicht in HTML einfügen.
Du hast zwei Möglichkeiten:
1. Du speicherst die Grafik in das Temp-Verzeichnis (GetTemporaryDirectory()) und lädst die Grafik lokal:

Code: Alles auswählen

<img src="file:///..." />
2. Oder du erstellst einen Base64-String der Grafik und speicherst im DataSection ab. Diesen String kannst du im IMG-Tag einfügen.

Re: bild in exe speichern

Verfasst: 25.06.2016 13:35
von derschutzhund
Willkommen zurück :allright:
Na das ist ja eine tolle Begrüßung! :D

So für mein Verständnis:
Bei jedem Programmstart würde dann aus der Exe heraus z.B. die Datei "ws-test.gif" auf der HD erzeugt die ich dann, wie bisher aus, über html anzeigen kann?
Das wäre absolut ok!

Ich müsste dann die Bilddatei z.B. mit SaveImage.. erzeugen lassen wobei es mir aber bis jetzt nicht gelingt:

Code: Alles auswählen

CatchImage(1, ?MyIcon)
   teststr$ = GetCurrentDirectory() + "ws-test.gif"
SaveImage(?MyIcon,teststr$)
oder auch

Code: Alles auswählen

CatchImage(1, ?MyIcon)
   teststr$ = GetCurrentDirectory() + "ws-test.gif"
SaveImage(1,teststr$)
erzeugt die Datei "ws-test.gif" nicht

LG

Wolfgang

Re: bild in exe speichern

Verfasst: 25.06.2016 13:43
von RSBasic
LoadImage() kann kein Gif-Format lesen. Du musst deine eingebundene Datei manuell exportieren:

Code: Alles auswählen

EnableExplicit

If CreateFile(1, GetCurrentDirectory() + "ws-test.gif")
  WriteData(1, ?MyIcon, ?MyIconEnd-?MyIcon)
  CloseFile(1)
EndIf

DataSection
  MyIcon:
  IncludeBinary "C:\PureBasic\3DP-VarioGCode\ws-logo.gif"
  MyIconEnd:
EndDataSection

Re: bild in exe speichern

Verfasst: 25.06.2016 13:56
von derschutzhund
Läuft!!!
:bounce:

Besten Dank!

LG

Wolfgang