Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
23.10.2015, 16:15 (Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2015 16:17 von Trinitatis.)
ich bin mir nicht ganz sicher, ob es ein BUG ist, aber in der LV-Hilfe ist nicht ersichtlich, wie genau die Maske für transparent zu zeichnende Pixel in dem VI nicht serialisierte Pixmap zeichnen zu verwenden ist.
Das VI „nicht serialisierte PixMap zeichnen“ benötigt am Eingang Maske nicht wie in der Hilfe beschrieben für jeweils 8 zu zeichnende Pixel ein Maskenbyte, oder besser ausgedrückt: Dadurch ist die Verwendung des Eingangs Maske nicht eineindeutig beschrieben.
Für jede zu beschreibende Zeile des 2D-Pixelarrays müssen immer 2×N bytes des Maskenarrays übergeben werden, da das Maskenarray offenbar WORD-basiert arbeitet. D.h. für 1-16 zu zeichnende Pixel pro Zeile müssen 2 Maskenbytes;
für 17-32 zu zeichnende Pixel pro Zeile müssen 4 Maskenbytes usw. übergeben werden. Es können nicht 3 oder 7 usw. Maskenbytes pro Zeile übergeben werden!
Zudem wird nicht Bit 0 des ersten Maskenbytes für das erste Pixel verwendet, sondern das Maskenbyte-Bit-Array muss nochmal gedreht werden. Bit 0 des ersten Maskenbytes wird nämlich für das 8. Pixel verwendet, Bit1 für das 7. usw.
Vielleicht erspart dieser thread dem einen oder anderen ein paar Stunden Suche und Rumprobieren.
Gruß, Marko
29.10.2015, 23:57 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2015 00:02 von rolfk.)
ich bin mir nicht ganz sicher, ob es ein BUG ist, aber in der LV-Hilfe ist nicht ersichtlich, wie genau die Maske für transparent zu zeichnende Pixel in dem VI nicht serialisierte Pixmap zeichnen zu verwenden ist.
Das VI „nicht serialisierte PixMap zeichnen“ benötigt am Eingang Maske nicht wie in der Hilfe beschrieben für jeweils 8 zu zeichnende Pixel ein Maskenbyte, oder besser ausgedrückt: Dadurch ist die Verwendung des Eingangs Maske nicht eineindeutig beschrieben.
Für jede zu beschreibende Zeile des 2D-Pixelarrays müssen immer 2×N bytes des Maskenarrays übergeben werden, da das Maskenarray offenbar WORD-basiert arbeitet. D.h. für 1-16 zu zeichnende Pixel pro Zeile müssen 2 Maskenbytes;
für 17-32 zu zeichnende Pixel pro Zeile müssen 4 Maskenbytes usw. übergeben werden. Es können nicht 3 oder 7 usw. Maskenbytes pro Zeile übergeben werden!
Zudem wird nicht Bit 0 des ersten Maskenbytes für das erste Pixel verwendet, sondern das Maskenbyte-Bit-Array muss nochmal gedreht werden. Bit 0 des ersten Maskenbytes wird nämlich für das 8. Pixel verwendet, Bit1 für das 7. usw.
Vielleicht erspart dieser thread dem einen oder anderen ein paar Stunden Suche und Rumprobieren.
Gruß, Marko
LV Pixmaps sind immer auf 16 Bit pro Zeile gerundet. Die Maske is einfach eine 1 Bit Pixmap (B/W). Das war immer so und ist in dem Sinne kein Bug. Allenfalls könnte die Dokumentation darüber deutlicher sein, obwohl das bei der Pixmap Beschreibung selbst irgendwo schon erwähnt ist.
Auch die Bitfolge ist erklärbar da LabVIEW (und das Pixmap Format) ursprünglich vom Mac kommt, wo alles MSB (Most Significant Bit/Byte first) war. (Motorola 68000 Format)
..das mein´ich aber auch!
Wenn die von dir beschriebenen Fakten nämlich nicht bekannt sind, kann man sich schon einige Zeit mit diesem Problem beschäftigen. Da hätte ein Satz in der Hilfe zur Maske sicher geholfen.