Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Texturen auf Bild aufteilen (https://www.delphipraxis.net/115391-texturen-auf-bild-aufteilen.html)

Codewalker 11. Jun 2008 13:03


Texturen auf Bild aufteilen
 
Hallo zusammen.

Ich habe eine ganze Reihe von Texturen in einzelnen Bildern (alle relativ klein und in unterschiedlichen Größen). Ich möchte diese nun gemeinsam in eine große Datei speichern, da sich eine große Datei schneller laden lässt als viele kleine. Dabei möchte ich nach Möglichkeit den vorhandenen Platz (z.B. als Vorgabe 512x512 Pixel) so gut wie es geht ausnutzen, die Bilder also möglichst intelligent verteilen.

Habt ihr eine Idee, wie man an die Sache am sinnvollsten rangehen könnte (erstmal in der Theorie)?

Danke und Grüße

Fussball-Robby 11. Jun 2008 14:05

Re: Texturen auf Bild aufteilen
 
Du könntest die Bilder in eine ImageList laden und dann in eine Datei speichern. Wenn du sie wieder haben willst, kannst du sie einfach wieder laden:
Delphi-Quellcode:
//Speichern:
WriteComponentResFile('D:\Bilder.wuppdi', ImageList1);
//Laden:
ReadComponentResFile('D:\Bilder.wuppdi', ImageList1);
Die ImageList muss aber beim Speichern den selben Namen haben wie beim Laden, ansonsten funktionierts nicht.
Alternativ könntest du einen eigenen Dateityp entwerfen, in dem am Anfang der Datei die Anzahl der Bilder steht und jeweils die Positionen, an denen ein Bild anfängt bzw. aufhört. Dann könntest du die Bilder in diese Datei reinschreiben. Hab damit aber nicht viel Erfahrung..

Mfg

Codewalker 11. Jun 2008 14:10

Re: Texturen auf Bild aufteilen
 
Danke für die Antwort. Das Problem ist, dass ich das nicht für Delphi brauche, sondern um das Laden in einer Engine zu beschleunigen. Daher hilft mir hier die ImageList und die Res nicht weiter

littleDave 11. Jun 2008 18:12

Re: Texturen auf Bild aufteilen
 
Also wenn du mehrere kleinere Texturen in eine große Texture packen willst, hab ich da nen Link für dich:
klick mich
Nach dem Prinzip hab ich das in meiner Engine auch gemacht

Grüße

Codewalker 12. Jun 2008 07:24

Re: Texturen auf Bild aufteilen
 
Sieht schonmal sehr gut aus - auch wenn ich noch nicht alles durchblickt habe. Wärst du vielleicht so nett (damit ich das Rad nicht zweimal erfinden muss), und mir Deine Implementierung zu zeigen?

littleDave 12. Jun 2008 12:25

Re: Texturen auf Bild aufteilen
 
Ich kann dir gerne den Quelltext geben, doch heut schaff ich das nicht mehr - vielleicht morgen. Ich müssten dafür den Quelltext erst aus meiner Engine "extrahieren" bzw. herausarbeiten und das kann etwas dauern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz