Image erstellen Depth<24 ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Image erstellen Depth<24 ?

Beitrag 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...)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Image erstellen Depth<24 ?

Beitrag 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.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Image erstellen Depth<24 ?

Beitrag 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) ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Image erstellen Depth<24 ?

Beitrag von bobobo »

Code: Alles auswählen

LoadImage(0,"D:\omma.bmp")
SaveImage(0,"d:\omma8.bmp",0,0,8)
kennste F1 ??
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Image erstellen Depth<24 ?

Beitrag 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)
Zuletzt geändert von Bisonte am 17.08.2010 13:38, insgesamt 1-mal geändert.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Image erstellen Depth<24 ?

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Image erstellen Depth<24 ?

Beitrag 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 ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Image erstellen Depth<24 ?

Beitrag 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)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Image erstellen Depth<24 ?

Beitrag 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...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Image erstellen Depth<24 ?

Beitrag 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
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten