Seite 1 von 2
CreateImage????
Verfasst: 09.10.2013 17:28
von delikanli_19_82
Hallo leute,
Der Code
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
Re: CreateImage????
Verfasst: 09.10.2013 17:31
von KeyKon
CreateImage(#Image, Breite, Höhe [, Tiefe [, HintergrundFarbe]])
Du musst Bildtiefe und Hintergrundfarbe durch ein Komma trennen nicht durch ein Bitweises Oder
Re: CreateImage????
Verfasst: 09.10.2013 18:01
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.
Re: CreateImage????
Verfasst: 09.10.2013 18:07
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?
Re: CreateImage????
Verfasst: 09.10.2013 18:09
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..
Re: CreateImage????
Verfasst: 09.10.2013 18:24
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:
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.
Re: CreateImage????
Verfasst: 09.10.2013 18:32
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...
Re: CreateImage????
Verfasst: 09.10.2013 18:34
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?
Re: CreateImage????
Verfasst: 09.10.2013 18:37
von ts-soft
Vielleicht sollte er unter allen Betriebssystemen auch dieselbe PB Version nutzen

Re: CreateImage????
Verfasst: 09.10.2013 18:42
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.