Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
razlo Mini JLI'ler
Anmeldedatum: 25.07.2003 Beiträge: 6
Medaillen: Keine
|
Verfasst am: 31.07.2003, 15:27 Titel: Eigenes Graphikformat in Surface laden |
|
|
Hiho,
angenommen ich will mal nicht nur von nem Bitmap ein Surface anlegen, sondern mein eigenes Graphikformat benutzen.
Bleibt mir dann nichts anderes übrig als die betreffende Bilddatei auszulesen und Pixel für Pixel in die Oberfläche zu setzen?
Oder gibts noch ne andere Möglichkeit? |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 31.07.2003, 15:38 Titel: |
|
|
Du musst nicht unbedingt jeden Pixel einzeln machen, sondern kannst z.B. einzelne Zeilen mit memcpy kopieren. |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 31.07.2003, 15:45 Titel: |
|
|
davor musst du natürlich dein Grafikformat ins BMP Format konventieren _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 31.07.2003, 15:59 Titel: |
|
|
TheMillenium hat Folgendes geschrieben: | davor musst du natürlich dein Grafikformat ins BMP Format konventieren |
Nein, das ist nicht nötig, warum auch? |
|
Nach oben |
|
|
razlo Mini JLI'ler
Anmeldedatum: 25.07.2003 Beiträge: 6
Medaillen: Keine
|
Verfasst am: 31.07.2003, 16:44 Titel: |
|
|
Yups, reicht ja wenn ich alle Pixeldaten und die Daten der Farbpalette habe (falls <16bit). Wo und wie die gespeichert sind, is ja ansich egal.
Danke für die Antworten. |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 31.07.2003, 19:48 Titel: |
|
|
Christian Rousselle hat Folgendes geschrieben: | TheMillenium hat Folgendes geschrieben: | davor musst du natürlich dein Grafikformat ins BMP Format konventieren |
Nein, das ist nicht nötig, warum auch? |
nicht?
Warum kann ich dann nicht einfach jpg, gif, png , ... so laden?
Das sind doch andere Grafikformate???
Oder habt ihr jetzt ne andere AUflösung gemeint? _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 31.07.2003, 20:20 Titel: |
|
|
Das kannst du - du brauchst nur eine entsprechende Funktion. Man muss die Grafikdateien zwar entkomprimieren, aber man muss deswegen keine bmp erstellen, in die das ganze gespeichert wird und die dann nachher entgültig geladen wird. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 31.07.2003, 21:04 Titel: |
|
|
ja ich meinte ja auch, dass man dass aber durch ne Funktion ins bmp Format konventieren muss...also so
SPECIAL GraphicFormat(File) --> TO BMP DATA BLOCK((V)Ram) --> TO SURFACE(VRam) _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 31.07.2003, 21:15 Titel: |
|
|
TheMillenium hat Folgendes geschrieben: | ja ich meinte ja auch, dass man dass aber durch ne Funktion ins bmp Format konventieren muss...also so
SPECIAL GraphicFormat(File) --> TO BMP DATA BLOCK((V)Ram) --> TO SURFACE(VRam) |
Nein, es geht auch so:
SPECIAL GraphicFormat(File) --> TO SURFACE(VRam)
Deine Aussage würde man so verstehen, dass man das File dekomprimieren muss, danach einen Bitmap-Header genierieren muss und die Daten, wie bei einem Bitmap von oben nach unten in einen Puffer schreiben muss (wie es BMP auch macht) und dann erst in der Lage ist, das ganze in einen Surface zu laden.
Man kann aber z.B. auch das PNG Zeile für Zeile dekomprimieren und direkt (mit Lock()) in das Surface kopieren.
Christian |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 01.08.2003, 05:49 Titel: |
|
|
Wie dekomprimiert man denn eigentlich PNG? |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 01.08.2003, 06:21 Titel: |
|
|
Hallo,
das geht mit der zlib (quasi das Gleiche wie Zip-Kompression), da PNG diese Methode benutzt. Man kann aber auch einfacher die LibPng (die ich auch in meinem Projekt benutzt habe) nutzen.
Da gibt es Funktionen, die das PNG Zeilenweise dekomprimieren und z.B. als BYTE* zurückgeben.
Christian |
|
Nach oben |
|
|
|