AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Bitmaps archivieren und laden?
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmaps archivieren und laden?

Ein Thema von Rastaman · begonnen am 26. Sep 2007 · letzter Beitrag vom 28. Sep 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#1

Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 22:31
Hallo.

Ich hatte vor für ein Spiel alle Bitmaps binär hintereinanderweg in eine Datei zu schreiben
und dann eben zur Laufzeit zu laden, damit nicht hunderte Bitmaps in Ordnern rumfliegen und auch leicht verändert werden können.
Das Problem ist allerdings, dass die Funktion, die zum Bitmapladen verwendet wird, nur einen Dateinamen als Parameter erwartet. Wie soll das gehen ohne temporäres Speichern?
Ich hab auch schon überlegt, alles in eine DLL zu verpacken als Resource und dann mit MAKEINTRESOURCE(???) als Dateinamen zu übergeben, allerdings geht das Programm dann
sofort und ohne Fehlermeldung aus Naja, das "Bitmaparchiv" wär mir sowieso lieber.

Jemand ne Idee?
Danke schonma
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#2

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 22:39
Die WinApi bietet die Möglichkeit aus einem Bild, einen Bereich in eine Bitmap zu laden.

Die Funktion dafür ist unter anderen BitBlt!
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#3

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 23:03
Hi. Danke, aber danach suche ich nicht.
Ich habe ja ganz viele EINZELNE Bitmaps binär hintereinander in einer einzigen Datei gespeichert
und möchte diese gezielt auslesen. Hinzu kommt ja noch, dass ich als Parameter einen String und kein HDC oder HBITMAP angeben kann.
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 23:07
Erzählen kannst Du ja, zeig etwas Code !
Blackheart
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 23:12
Hallo Rastaman,

ich kann zwar direkt keine Lösung zu Deinem Problem
angeben, möchte dich aber auf eine Komponente hinweisen:
www.torry.net > SingleFileDataStorage

Damit können beliebige Dateien in einer Datei gespeichert
und bequem wieder ausgelesen werden.


Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#6

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 23:17
Hä was soll ich zeigen, wenn ich nix habe.
Ich habe noch gar kein Programm erstellt um bequem solche Dateien mit zig Bitmaps zu erstellen,
denn wieso auch, wenn ich nichtmal weiß, wie ich sie später laden soll?
Die Funktion zum Laden der Bitmap lautet übringens

Code:
SDL_Surface *SDL_LoadBMP(const char *file);
oder grob übersetzt

function SDL_LoadBMP(file: String): PSDL_Surface; Is ja eigentlich auch egal, denn ich muss wissen wie ich diese Bitmap, die sich irgendwo in einer
großen Datei befindet, die voll ist mit Bitmaps, so präpariere, dass ich sie mit dieser Funktion laden kann.
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 23:27
Zitat von Rastaman:
Hi. Danke, aber danach suche ich nicht.
Ich habe ja ganz viele EINZELNE Bitmaps binär hintereinander in einer einzigen Datei gespeichert
und möchte diese gezielt auslesen. Hinzu kommt ja noch, dass ich als Parameter einen String und kein HDC oder HBITMAP angeben kann.
Das hab Ich damit gemeint... zwecklos
Blackheart
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 23:36
Lad das große Bitmap in ein TBitmap und kopier dir dann den Teil, den brauchst, aus dem Canvas des gro0en Bitmaps raus.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#9

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 23:40
Zitat von Blackheart:
Zitat von Rastaman:
Hi. Danke, aber danach suche ich nicht.
Ich habe ja ganz viele EINZELNE Bitmaps binär hintereinander in einer einzigen Datei gespeichert
und möchte diese gezielt auslesen. Hinzu kommt ja noch, dass ich als Parameter einen String und kein HDC oder HBITMAP angeben kann.
Das hab Ich damit gemeint... zwecklos
Brauchst ja nich gleich frech werden. Wenn du nicht verstehst was das bedeutet
kannst du mir sowieso nicht helfen. Aber bitte ...

Code:
---Bilderarchiv1.ba
  - BMP_Gehweg.bmp
  - BMP_Gras.bmp
  - BMP_Wand.bmp
---
So sind meine Bitmaps gespeichert. Einfach binär hintereinander weg.
Dann kommt die Funktion zum Laden der Bitmaps, die als Parameter einen DATEINAMEN, nichts weiter, erwartet.
Wie kann ich jetz z.B BMP_Gras.bmp Laden, ohne eine temporäre Bitmap auf der Festplatte zu erstellen.
Sprich ...

Code:
Erstelle neue Bitmap BMP_Gras.bmp.tmp
Schreibe Datei voll mit den Daten aus Bilderarchiv1.ba
Lade Datei mit SDL_LoadBMP(BMP_Gras.bmp.tmp)
Lösche BMP_Gras.bmp.tmp
Ist wahrscheinlich nicht nur uneffizient sondern auch unschön.
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#10

Re: Bitmaps archivieren und laden?

  Alt 26. Sep 2007, 23:44
Zitat von Luckie:
Lad das große Bitmap in ein TBitmap und kopier dir dann den Teil, den brauchst, aus dem Canvas des gro0en Bitmaps raus.
Roter Kasten

Nene so gehts ja nicht. Ist wie bei deinem SFX-Archiven. Die Dateien sind einfach hintereinander weg
gespeichert. Es ist ja nicht ein Bild, also eine große Bitmap. Und selbst dann, wenn ich es nach deiner Methode machen
würde, müsste ich die Datei zwischenspeichern auf Festplatte, weil eben ein Dateiname erwartet wird. Das ist ja das Problem Ich hab das blöde Gefühl es geht gar nicht ohne Zwischenspeichern
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz