Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Frage zu Resourcen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 07.03.2009, 12:21    Titel: Frage zu Resourcen Antworten mit Zitat

Hallo,
Ich habe eine Frage: Ich möchte ein Bitmap (BMP) in meine EXE einbinden, damit das Bild nicht im Verzeichnis sein muss.
Ich weiß aber nicht wie man ein Bild einbindet oder später wieder ausliest.
Kann mir da jemand helfen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 562
Wohnort: Jüterbog

BeitragVerfasst am: 07.03.2009, 14:59    Titel: Antworten mit Zitat

Hm... ich habs irgendwo mal so ähnlich gemacht:
(nur mit FreeBASIC -Befehlen)

nicht sehr elegant aber es geht

du musst dir ein kleines Tool schreiben,das...
ein Bild laden und das Image(genauer die Farbwerte) als DATA Zeilen abspeichern kann
sowas in der Art hier:

Code:
screen 19,32
dim as integer ptr img
dim as integer imgw,imgh
imgw=40
imgh=40
img=imagecreate(imgw,imgh)
if img then
  dim as integer i,k,ff
  bload "test.bmp",img
  put (0,0),img
  ff=freefile
  open "Datazeilen.bas" for output as ff
    for k=0 to imgh-1
      print #ff,"DATA ";
      for i=0 to imgw-1
        print #ff,point(i,k,img);
        if i<imgw-1 then print #ff,","; else  print #ff,
      next i
    next k
  close ff
  sleep
  imagedestroy img
end if
end


in deinem eigentlichen Programmcode später
musst du dann die Datazeilen aus "Datazeilen.bas" ans Ende kopieren,eventuell mit
einem Label versehen,ein Image erzeugen und die Datawerte
mittels (restore,)read und pset ins Image pixeln

Code:
screen 19,32
dim as integer ptr img
dim as integer imgw,imgh
imgw=40
imgh=40
img=imagecreate(imgw,imgh)
if img then
  restore bild
  dim as integer i,k,col
  for k=0 to imgh-1
    for i=0 to imgw-1
      read col
      pset img,(i,k),col
    next i
  next k
  put (0,0),img
  sleep
  imagedestroy img
end if

end

'Achtung Datablock unvollständig!!!
bild:
DATA -1712480,-3424427,-1251938,-1251714,-1318287,-1581236,-1844928,-1515963,-1119896,-1909642,-592725,-4672190,-2106983,-988212,-1250859,-1119012,-1316642,-1448228,-1514276,-1580067,-1514016,-1382172,-1250585,-1184536,-1382173,-1842527,-1447785,-1381483,-790121,-461685,-4936141,-8357376,-5002226,-2502597,-1384603,-1384324,-1449338,-856672,-395327,-395050
'das geht jetzt hier munter so weiter...............  :D     


Um einen ellenlangen DATA-Block wirst du wohl nicht rumkommen

Mutton


Zuletzt bearbeitet von Muttonhead am 07.03.2009, 16:02, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 07.03.2009, 15:20    Titel: Antworten mit Zitat

Der Vorteil dieser Variante ist übrigens, dass die Daten in dieser Form komprimiert werden können, wenn ein Exe-Packer wie UPX benutzt wird.
Ansonsten wurde das Thema hier im Forum AFAIK schon mehrmals behandelt.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 07.03.2009, 17:14    Titel: Antworten mit Zitat

http://www.freebasic-portal.de/index.php?s=tutorials

Teil Resourcen & Compiler
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz