https://bugs.kde.org/show_bug.cgi?id=400353
Bug ID: 400353
Summary: All channels pixelData is Blue channel
Product: krita
Version: 4.1.5
Platform: MS Windows
OS: MS Windows
Status: REPORTED
Severity: normal
Priority: NOR
Component: Scripting
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Can only read and write to Blue channel from Node::channels() list, no matter
which channel is accessed (Channel::name() works correctly however).
STEPS TO REPRODUCE
1. Create new document (something small, say 2x2 pixels)
2. Fill with yellow (255, 255, 0)
3. Run the following script:
from krita import *
from PyQt5.QtCore import QByteArray, QRect
doc = Krita.instance().activeDocument()
layers = doc.rootNode().childNodes()
channels = layers[0].channels()
greenChan = channels[1]
print(greenChan.name()) # Prints 'Green'
rect = greenChan.bounds()
# Print out 1
for chan in channels:
print("Channel: " + chan.name())
px = chan.pixelData(rect)
print(px)
val = int(128)
pxData = greenChan.pixelData(rect)
pxData.fill(val.to_bytes(1, byteorder='little'))
greenChan.setPixelData(pxData, rect)
# Print out 2
for chan in channels:
print("Channel: " + chan.name())
px = chan.pixelData(rect)
print(px)
doc.refreshProjection()
OBSERVED RESULT
Print out 1 in above script prints all \x00s for all channels
Print out 2 in above script prints all \x80s for all channels
Image is pale yellow (255, 255, 128)
EXPECTED RESULT
Print out 1 should print \x00 for Blue channel and \xFF for other channels
Print out 2 should print \x00 for Blue, \x80 for Green and \xFF for Red/Alpha
Image should be orange (255, 128, 0)
SOFTWARE VERSIONS
(available in About System)
Krita
Version: 4.1.5
Qt
Version (compiled): 5.9.3
Version (loaded): 5.9.3
OS Information
Build ABI: x86_64-little_endian-llp64
Build CPU: x86_64
CPU: x86_64
Kernel Type: winnt
Kernel Version: 6.1.7601
Pretty Productname: Windows 7 SP 1 (6.1)
Product Type: windows
Product Version: 7sp1
OpenGL Info
**OpenGL not initialized**
ADDITIONAL INFORMATION
Same behaviour occurs in Krita 4.1.3.
Same behaviour occurs no matter which channel is accessed
--
You are receiving this mail because:
You are watching all bug changes.