Seite 1 von 4

Bild in Programm einbinden?

Verfasst: 29.05.2006 14:39
von Rockmaster
Hi ich hab da so ein kleines Problem...
Und zwar wenn ich über Loadsprite ein Bild aufrufe muss die .exe-datei immer im gleichen ordner sein wie das bild und das nervt mich etwas...
gibt es eine möglichkeit das bild in die exe einzubinden?

P.S. Über import endimport hab ich es schon versucht kan aber eine fehlermeldung!

Verfasst: 29.05.2006 14:43
von AND51
Ja, die Möglichkeit gibt es. Schau dir folgenden Code an:

Code: Alles auswählen

DataSection ;ab heir werden Bilder und andere Dateien eingebunden
   ?MeinBild: IncludeBinary "C:\Bla\Bli\Blub\Mein Bild.bmp"
EndDataSection

res=CatchImage(#PB_Any, ?MeinBild)
CatchImage() ist daselbe wie Loadimage, man muss stattdessen aber das Label des Bildes angeben.

Die Bilder selbst werden mit IncludeBinary eingebunden, innerhalb einer DataSection. Du musst einmalig nur den absoluten oder relativen Pfad zum Bild angeben.

Verfasst: 29.05.2006 14:53
von Rockmaster
Ok danke ich werd nochmal in der hilfe genaueres darüber nachlesen!

Verfasst: 29.05.2006 14:57
von Rockmaster
Geht das auf die selbe Weise wenn ich ein imagegadget benutze?

Verfasst: 29.05.2006 15:13
von Jilocasin
Müsste gehen, du musst es nur zuvor laden.

Verfasst: 06.06.2006 11:39
von Xenos
ähem... vielleicht habe ich das nicht richtig begriffen, aber der Code setzt doch voraus, dass die Datei irgendwo vorhanden ist, damit sie erstmal in die Datensektion geladen werden kann - soweit klar.

Aber wäre damit das Image so in die exe eingebunden, dass ich die Vorlagedatei nach dem ersten Durchlauf löschen könnte?

Ich vermute mal nicht, da die Datensektion daraus besteht, was dort als Bild eingeladen wird.

Und noch ne Frage: Wäre es dann nicht auch möglich Variablen in die Datensektion zu schreiben?

:?

Verfasst: 06.06.2006 12:52
von Tafkadasom2k5
Hoho!

...ja, aber das Picture wird included, ist also innerhalb der .exe vorhanden und muss nicht mehr von extern nachgeladen werden...

Das heißt, die Datei muss beim Kompilieren auf dem genannten Pfad existieren, und danach kannste sie vergessen ;)

Gr33tz
Tafkadasom2k5

Verfasst: 06.06.2006 13:06
von edel
Xenos hat geschrieben:Und noch ne Frage: Wäre es dann nicht auch möglich Variablen in die Datensektion zu schreiben?
:?
Ja , entweder mit dem Label einlesen oder ueber Restore und Read

Code: Alles auswählen

; variante 1
*a.long = ?var
debug *a\l

; variante 2
restore var
read b.l
debug b

End
DataSection
  var:
  Data.l = 505050505
EndDataSection

Verfasst: 06.06.2006 13:18
von Kaeru Gaman
davon ab würde ich vermeiden, bilder zu früh zu löschen / überhaupt zu löschen.

ich persönlich würde jedes bild, das ich einbinde, auch noch als bilddatei aufbehalten.
schließlich leben wir nicht in den achzigern, deine festplatte hat doch mehr als 30MB.

außerdem kannst du bilder auch in untergeordnete verzeichnisse packen,
also
> wenn ich über Loadsprite ein Bild aufrufe muss die .exe-datei immer im gleichen ordner sein wie das bild und das nervt mich etwas...
trifft so nicht zu.

Verfasst: 06.06.2006 20:29
von Xenos
Ein paar MB sinds schon :mrgreen:

Ich frage hauptsächlich, weil ich dann ja die Bilder nicht mit weitergeben muss.

Wenn ich mich recht entsinne funktioniert dass ja auch mit Sounds...

Schon klasse, eine exe, alles drin :allright: