23.10.2015, 16:15
Hallo zusammen,
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
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