![]() |
Sprite => BitMap; BitMap => Sprite
ich habe folgendes problem
aufbau sprite ist bekannt und aufbau bitmap ebenfalls. gibt es eine vereinfachte möglichkeit bei delphi ein sprite in mehrere bitmaps zu konvertieren und umgekehrt ohne dies per hand zu programmieren ? vielleicht kann mir jemand einen hinweis oder infos zur problematik geben. dank im voraus |
Re: Sprite => BitMap; BitMap => Sprite
mir ist kein zerteilemeinspriteinvielebitmaps(S: TSprite; Speicherort: String); bekannt, also würd ich sagen du musst dies per Hand programmieren ;)
:angle:, sCrAPt |
Re: Sprite => BitMap; BitMap => Sprite
Willkommen in der DP :-D
Zitat:
|
Re: Sprite => BitMap; BitMap => Sprite
komprimierte sprites entsprechen nicht dem aufbau eines bitmap und müssen daher in "echte" bitmap umgewandelt werden.
ich habe mir zwar schon einiges angelesen doch eine einfache importfunktion (in ein image oder paintbox) habe ich nicht gefunden. zumal die sprites die ich meine informationen beinhalten was alpha, color und z-buffer betrifft. eine zusätzliche palettendatei besteht zudem (um 24bit zu generieren). diese wäre zwar zu vernachlässigen, doch wenn man sie bräuchte kann man dies schnell selber "zu fuß" mit einbinden. |
Re: Sprite => BitMap; BitMap => Sprite
komprimierte sprites? ...dann sei doch so freundlich un sage was für komprimierte texturen du meinst. Welche API, welches system?
|
Re: Sprite => BitMap; BitMap => Sprite
spriteaufbau ist wie folgt.
aufbau des layouts offset | größe | value 0 | 4 | version 4 | 4 | anzahl der frames 8 | 4 | farbpalette 12 | 4 | offset tabelle var | var | frame 0 var | var | frame 1 | | . . . aufbau der frames offset | größe | value 0 | 2 | breite 2 | 2 | höhe 4 | 2 | Flags 6 | 2 | null 8 | 2 | farbpalette ID 10 | 2 | transparent pixel 12 | 2 | Y 14 | 2 | X 16 | 2 | reihen header 0 18 | var | reihen segments var | 2 | reihen header 1 var | var | reihen segments | | . . . var | 2 | End marker (0xA000) aufbau der reihe Offset | größe | value 0 | 2 | was zu machen und zähler 2 | var | Pixel daten var | opt | Ausrichtung in byte dies auszulesen ist nicht das problem, nur wie bekomme ich dies in ein bitmap interpretiert bzw. in eine paintbox ? vom prinzip sind alle daten vorhanden, möchte nur nicht etwas "langsames" unter delphi programmieren wenn es eine importfunktion oder ähnliches gibt. vielleicht fange ich auch irgendwie falsch an, doch angezeigt bekomme ich es als bitmap nicht. |
Re: Sprite => BitMap; BitMap => Sprite
Da dies kein standard format zu sein scheint kann delphi das natürlich nicht lesen. Aber wenn du die daten korrekt interpretieren kannst, dann hält dich niemand davon ab, es via scanLine in ein TBitmap zu schreiben und dann mit TBitmap.saveToFile zu speichern...das kannst du dann für jeden frame tun.
Zu scaneLine gibt es hier sicher tausende beispiele. |
Re: Sprite => BitMap; BitMap => Sprite
danke für den hinweis, habe mir mal scanline zur gemüte geführt. funktioniert sogar recht prächtig (und ist schneller als einzelne pixel setzen).
inzwischen kann ich die sprites erkennen, allerdings habe ich probleme mit der zuordnung der palette, da diese ausgelagert ist in eine datei. wenn ich mich recht erinnere bekomme ich diese zwar auch über pixel rgb farben setzen rein doch dann ist mein gesamter geschwindigkeitsgewinn mit scanline wieder dahin. eine idee wie es einfacher oder schneller geht? frage nebenbei, aus der erfahrung heraus..... was ist schneller im zeichnen bei delphi, paintbox oder image.picture.bitmap ? |
Re: Sprite => BitMap; BitMap => Sprite
Zitat:
Zitat:
Delphi-Quellcode:
rgb := (bgr and $00FF00) or ((bgr shl 16) and $FF0000) or ((bgr shr 16) and $FF);
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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 by Thomas Breitkreuz