Seite 1 von 1

Image erstellen Depth<24 ?

Verfasst: 17.08.2010 03:00
von Bisonte
Hallo...

Nach langer Zeit wollte ich mal wieder ein G15 Applet basteln, bin dann aber auf den Umstand gestoßen, dass
folgende Zeile nicht mehr funktioniert :

Code: Alles auswählen

Image = CreateImage(#PB_Any, WIDTH, HEIGHT, 8)
da ja ab 4.50 Defaultmäßig nur noch 24 oder 32 Tiefe angegeben werden kann.
Das verkraftet das Display allerdings nicht ;)

Wie kann ich denn nun ein Image erstellen, dass maximal 8 Bit Tiefe (oder meinetwegen monochrom=2 Bit) hat ?

(Ich benutze für die G15 eine an 4.5x angepasste Include von HeX0r falls das hilft...)

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 03:22
von TomS
Ich kenne die Include nicht, daher die Frage: Wie gibst du das Bild an die G15 weiter?
Wenn du ein Bild in einem Ordner erstellst, woraus es sich die Tastatur dann rausfischt, dann kannst du die Farbtiefe bei SaveImage() angeben.

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 03:40
von Bisonte

Code: Alles auswählen

G15\ImageID = CreateImage(#PB_Any, #LGLCD_BMP_WIDTH, #LGLCD_BMP_HEIGHT, 8)
Danach wird das ganze an eine Prozedur weitergeleitet, die auf dem Image ein paar Sachen draufpinselt und
dann wird es per DLL Funktion (Import) angezeigt. (lgLcdUpdateBitmap(G15\Device, G15\ImageID, LGLCD_ASYNC_UPDATE(Prio)))

Ich habe mal probiert, ein Bild per Irfanview auf Tiefe 1 zu setzen, und dann anstelle von CreateImage nur CopyImage
zu nutzen (Also das das modifizierte Bild immer als neues Bild genommen wird) aber da bleibt das Display genauso leer...

Und wo kann man bei SaveImage die Tiefe angeben ?
Etwa so ... SaveImage(#Image, "Bild.bmp", #PB_ImagePlugin_BMP, Depth) ?

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 13:12
von bobobo

Code: Alles auswählen

LoadImage(0,"D:\omma.bmp")
SaveImage(0,"d:\omma8.bmp",0,0,8)
kennste F1 ??

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 13:35
von Bisonte
bobobo hat geschrieben:kennste F1 ??
Sicher, aber wo liest du hier was von Depth oder Tiefe ?
Hilfe hat geschrieben:Ergebnis = SaveImage(#Image, DateiName$ [, ImagePlugin [, Flags]])
'ImagePlugin' ist ein optionaler Parameter...
'Flags' ist ein optionaler Parameter abhängig vom verwendeten Plugin. Zurzeit wird nur die Einstellung der Bildqualität unterstützt...
und wo kommt jetzt dein dritter Parameter her ?

Edit: ahhh ... (Immer der Versionshickhack... 4.41 war an.... aua)

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 13:37
von STARGÅTE
n Bisschen alt deine F1-Taste ^^ schon mal n neue geholt?

Hier der Link zur aktuellen Hilfe:
SaveImage()
Ergebnis = SaveImage(#Image, DateiName$ [, ImagePlugin [, Flags [, Tiefe]]])
[...]
Derzeit unterstützen nur BMP- und PNG-Kodierer das Bildformat mit Farbpaletten-Tiefe (1, 4 bzw. 8 Bit).
EDIT:

Na zum glück hattest du nicht 3.30 an :D
Syntax

SaveImage(#Image, DateiName$)
Beschreibung

Speichert das angegebene Bild '#Image' in die angegebene Datei 'DateiName$'. Wenn die Funktion fehlschlägt, wird 0 zurückgegeben, andernfalls ist alles in Ordnung.
Unterstützte OS

Windows, Linux

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 13:59
von Bisonte
nungut, aber trotz SaveImage auf Tiefe 8 und ersetzen von
G15\ImageID = CreateImage(#PB_Any, #LGLCD_BMP_WIDTH, #LGLCD_BMP_HEIGHT, 8)
G15\ImageID = CopyImage(Bit8,#PB_Any)

Wobei Bit8 das per CatchImage reingeholte Bild ist, klappt es nicht, will sagen Display bleibt schwarz.

Liegt es an der internen Verarbeitung von PB ? Ich meine, macht PB daraus intern wieder mehr Bitebenen rein ?

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 14:19
von STARGÅTE
>> "Liegt es an der internen Verarbeitung von PB ? Ich meine, macht PB daraus intern wieder mehr Bitebenen rein ?"
Jo.

PureBasic 4.50 Final Released!
- Geändert: Die Image Library behandelt Bilder jetzt intern als 24Bit oder 32Bit (das Laden und Speichern funktioniert mit anderen Bit-Tiefen)

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 15:09
von Bisonte
Ich meinte doch ich hab irgendwo was gelesen....

Mist. Wie dengel ich denn das so hin.... oder aber ich muss dafür weiterhin 4.41 gebrauchen...

Re: Image erstellen Depth<24 ?

Verfasst: 17.08.2010 17:55
von bobobo
du baust dir mit pb4.uralt eine dll, die das kann
und die benutzt du aus pb 4.50 heraus.

ansonsten
http://www.purebasic.fr/german/viewtopi ... 51#p278951