CreateImage????

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

CreateImage????

Beitrag von delikanli_19_82 »

Hallo leute,

Der Code

Code: Alles auswählen

CreateImage( ID, W, H, 32 | #PB_Image_Transparency )
läuft unter Windows und Mac einwandfrei, allerdings unter Linux (Mint 32Bit) nicht.

Der Compiler erklärt mir folgendes:

Ungültige Bild 'Tiefe': mögliche Werte sind 24 und 32. PB5.20LTS(x86)

Ich kann damit nichts anfangen. Weis jemand ein Rat?

Mfg

kurt
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: CreateImage????

Beitrag von KeyKon »

CreateImage(#Image, Breite, Höhe [, Tiefe [, HintergrundFarbe]])

Du musst Bildtiefe und Hintergrundfarbe durch ein Komma trennen nicht durch ein Bitweises Oder
(\/) (°,,,°) (\/)
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: CreateImage????

Beitrag von delikanli_19_82 »

warum funktioniert der code dann bei win und mac und nicht unter lin?

habs gemacht, habe aber schwarzes hintergrund, statt transparenz.

Code: Alles auswählen

o = CreateImage( #PB_Any, width, height, 32, #PB_Image_Transparent )
Mein Code an sicht ist aber nicht verkehrt. In der PB-Hilfe stehts geschrieben:

(CreateImage) Tiefe optional:

Die Farbtiefe des neuen Bildes. Gültige Tiefen-Werte können sein: 24 Bit und 32 Bit. Der Standard ist 24 Bit, wenn keine Tiefe angegeben wird. Der Tiefen-Wert kann mit #PB_Image_Transparent kombiniert werden (mit dem bitweisen OR-Operator '|'), um ein Bild zu erstellen, bei dem der Alpha-Kanal auf völlige Transparenz gesetzt ist. Dies hat nur einen Effekt bei 32 Bit Bildern.
Zuletzt geändert von delikanli_19_82 am 09.10.2013 18:07, insgesamt 1-mal geändert.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: CreateImage????

Beitrag von NicTheQuick »

Es kommt immer noch darauf an wie du es zeichnest und nicht nur wie du es erstellst. Siehe auch 'DrawingMode()'.

Bist du sicher, dass du den selben Code unter Windows und unter Linux nutzt?
Bild
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: CreateImage????

Beitrag von delikanli_19_82 »

ja 100% sicher.

Es ist eine selbt entwickelte Software. Ich arbeite auf meinem MacBook und lasse unter VirtualBox Win und Linux laufen die auf den selben Shared-Folder Zugang haben.

Von dort lasse ich den Code einfach auch unter Linux und Windows durchkompilieren.

Ist wichtig, damit ich Anpassungen universell machen kann und dasselbe Programm nicht komplett neu mal für das eine, mal für das andere neu entwerfn muss.

So läuft es unter Windows und Mac:

Code: Alles auswählen

newPhoto = 
CreateImage( #PB_Any, width, height, 32 | #PB_Image_Transparent )
    If IsImage(newPhoto) > 0 And StartDrawing(ImageOutput(newPhoto))
      DrawingMode(#PB_2DDrawing_AlphaBlend)
...
und so habe ich das jetzt unter Linux angepasst:

Code: Alles auswählen

newPhoto = 
CreateImage( #PB_Any, width, height, 32, #PB_Image_Transparent )
    If IsImage(newPhoto) > 0 And StartDrawing(ImageOutput(newPhoto))
      DrawingMode(#PB_2DDrawing_AlphaBlend)
...
halt mit CompilerSelect...

aber die Linux-Variante will nicht..
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: CreateImage????

Beitrag von NicTheQuick »

Eigentlich sollte so unter Windows und Mac ein Fehler auftreten. Der Wert "32 | #PB_Image_Transparent" ist nämlich nicht zulässig, weil der zusammen nämlich -1 ist:

Code: Alles auswählen

Debug 32 | #PB_Image_Transparent
So wie du es in der Linux-Variante machst ist es richtig.

Kannst du mir mal einen lauffähigen Code schicken, der das Problem zeigt? Dann kann ich das bei bei meinem Linux testen.
Bild
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: CreateImage????

Beitrag von delikanli_19_82 »

das ist schwierig, weil ich hier ein sehr umfangreichen programmcode habe.

ich kann jetzt nicht das ganze programm erklären, nur den betroffen teil.

Kleine Beschreibung:

auf jedenfall gibt es eine liste, in der man bilder per OpenFileReq auswählen und anordnen kann.

Die Bilder müssen in derglichen Width-Height-Größe vorliegen, wobei der ganz hinten normales Bild ist,
der rest aus transparenten PNG's.

Es gibt noch diverse Effekt-Möglichkeiten für jedes Bild. das ganze wird dann zu einer neuen bilddatei zusammengefasst. eigentlich eine ganz einfache sache.

Nochmals zur Sache in der PB-Hilfe:

(CreateImage) Tiefe optional:

Die Farbtiefe des neuen Bildes. Gültige Tiefen-Werte können sein: 24 Bit und 32 Bit. Der Standard ist 24 Bit, wenn keine Tiefe angegeben wird. Der Tiefen-Wert kann mit #PB_Image_Transparent kombiniert werden (mit dem bitweisen OR-Operator '|'), um ein Bild zu erstellen, bei dem der Alpha-Kanal auf völlige Transparenz gesetzt ist. Dies hat nur einen Effekt bei 32 Bit Bildern.

ich verstehe darunter 32 | #PB...
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: CreateImage????

Beitrag von NicTheQuick »

Ich will auch nicht wissen, wozu das Programm gut ist, sondern ich hätte gerne einen Testcode von dir, der das Problem aufzeigt. Oder soll ich mir jetzt drum herum alles selbst programmieren nur um zu sehen, dass der Fehler wahrscheinlich nicht an PB liegt?
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: CreateImage????

Beitrag von ts-soft »

Vielleicht sollte er unter allen Betriebssystemen auch dieselbe PB Version nutzen :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: CreateImage????

Beitrag von NicTheQuick »

Den Ausschnitt aus der Hilfe hat er anscheinend hinzugefügt als ich noch dabei war meinen Beitrag zu schreiben.

Dann scheint ja alles klar zu sein. Du nutzt wohl verschiedene PB-Versionen auf den verschiedenen Betriebssystemen. Oder aber einfach nur eine zu alte, wo das vielleicht unter Linux nicht funktioniert.
Bild
Antworten