Größe des Bildes bei createimage beschränkt?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

gameworx

Betreff: Größe des Bildes bei createimage beschränkt?

BeitragMi, Feb 02, 2011 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich nachfolgenden Code ausführe, dann wird das Bild "gfx" offenbar gar nicht erst erstellt. Ändere ich die "files" auf 356, dann funktioniert es einwandfrei. Ist die Breite des Bildes limitiert oder warum geht das nicht? Jemand eine Idee?

Code: [AUSKLAPPEN]

isx = 46    ; imagewidth
isy = 46    ; imageheight
files = 360 ; number of files

gfx = CreateImage (isx * files, isy)

SetBuffer ImageBuffer (gfx)
ClsColor 255,0,0 : Cls


SetBuffer BackBuffer()

ClsColor 255,255,255 : Cls

DrawImage gfx,0,0

Flip
WaitKey()
AMD Athlon II X3 440 (3 GHz), 4GB Ram, ATI Radeon HD 5450, Win 7

Holzchopf

Meisterpacker

BeitragMi, Feb 02, 2011 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Also 16376 Pixel ist ja auch schon ziemlich breit für ein Bild... Was meinst du mit "offenbar gar nicht erstellt"? Ist nach CreateImage die Variable gfx immer noch 0 oder erhält sie einen Wert und du kriegst bei ImageBuffer eine MAV? Es ist gut möglich, dass du so grosse Bilder gar nicht erst erstellen kannst. Bei mir läuft der Code übrigens. Das bringt dir insofern etwas, dass du jetzt weisst, dass es auf verschiedenen Systemen unterschiedlich sein kann, wo die Grenze liegt - wenn es bei dir mit 356 klappt, könnte es also durchaus sein, dass es bei anderen immer noch nicht geht.
An deiner Stelle würde ich nach einer anderen Methode suchen. Klappt's denn, wenn du statt 46*360 ein 46x46Px Bild mit 360 Frames erstellst? Oder kannst du das Bild sonst irgendwie in kleinere Bilder aufteilen? Denn an der Speichermenge selbst sollte es nicht liegen: knapp 3MiB sollte noch jedes System packen. Schon eine 1024x1024er Textur braucht ja mehr Platz.

mfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

gameworx

BeitragMi, Feb 02, 2011 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
"Nicht erstellt" ist falsch. Es wird erstellt, aber ich kann es nicht mit Grafikbefehlen manipulieren. Wenn ich es mir mit drawimage anzeigen lassen will, dann passiert gar nix. Nichtmal ein MAV. Wenn ich das Bild mit saveimage speichere, bekomme ich nur ein schwarzes Bild, welches aber die korrekte Höhe und Breite hat.

Wenn es bei dir geht, dann hat es evtl. mit dem Grafikspeicher zu tun?

So, hab ich auch getestet: Ein Bild mit 46x46(x360 Frames) funktioniert einwandfrei.

Hintergrund ist der: Ich arbeite mit dem Tool Spriteforge, welches meine 3D Modelle als 2D Sprite rendert. Dummerweise speichert er jedes Sprite als Einzelbild ab. Wenn ich das Modell also um 360° in 1° Schritten drehe, sind das 360 Einzelbilder. Deshalb habe ich mir ein kleines Programm geschrieben, welches die Bilder zu einer einzigen Datei zusammenfügt, damit ich es mit "loadanimimage" benutzen kann.

Mein Programm funktioniert einwandfrei. Zumindest bei Sprites, wo die 360° Drehung in 15° Schritten gerendert wurde (= 24 Einzelbilder).
AMD Athlon II X3 440 (3 GHz), 4GB Ram, ATI Radeon HD 5450, Win 7
  • Zuletzt bearbeitet von gameworx am Mi, Feb 02, 2011 17:49, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragMi, Feb 02, 2011 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann schreib dein Tool so um, dass es die Anzahl der Bilder auf Spalten und Zeilen zerlegt und schwupp hast Du die Probleme nicht mehr. Zudem: Ein Bild pro Grad ist viel zu viel, da reichen auch ein Bild für alle 5°. Spart Speicher und macht optisch fast keinen Unterschied.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

gameworx

BeitragMi, Feb 02, 2011 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Da hast du Recht BR. Mir ging es aber eigentlich nur um eine Klärung, warum es (bei mir Cool ) nicht geht. Eine Bilddatei mit 1024x768 (=786432 Pixel) ist schließlich größer als mein Image mit den Maßen 46x360x46 (=761760 Pixel). Läuft mein o. g. Programm bei dir?

EDIT:
Ich habe es gerade nochmal mit 45 x 360 x 46 (= 745200) getestet ... das funktioniert!
Danach mit 46 x 360 x 45 (= ebenfalls 745200 Cool ) ... das geht nicht! Mad
AMD Athlon II X3 440 (3 GHz), 4GB Ram, ATI Radeon HD 5450, Win 7
  • Zuletzt bearbeitet von gameworx am Mi, Feb 02, 2011 18:02, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragMi, Feb 02, 2011 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann ich Dir leider nicht beantworten da ich derzeit (noch) kein B3D installiert habe, da ich mein System erst neu aufgesetzt habe. Ich kann mir aber durchaus vorstellen dass sich bei solchen potentiellen Texturmassen so manch Treiber querstellt. Dem kann man ja aber wie gesagt leicht entgegenwirken.

EDIT: Hab nun installiert und getestet, meine Grafikkarte packt das.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group