首页 > 解决方案 > 如何在 Krita 中更改像素

问题描述

我正在尝试为 Krita 编写 python 脚本,它将反转当前图层中的颜色。我没有使用现有的过滤器,所以我可以将它用作编写其他过滤器的样板。

from krita import *;
width= Krita.instance().activeDocument().width();
height= Krita.instance().activeDocument().height();

l= Krita.instance().activeDocument().activeNode(); # get current layer
data= l.pixelData(0,0,width,height); # get pixels as QByteArray

for x in range(width):
    for y in range(height):
        for c in range(3):
            data[4*(y*width+x) + c] = 0xff - data[4*(y*width+x) + c];

l.setPixelData( data, 0, 0, width, height ); # copy back to image
Krita.instance().activeDocument().refreshProjection(); # refresh

我收到错误 ValueError: invalid literal for int() with base 10: b'\xff'

如果我改为尝试将一个通道设置为 0xFF

data[4*(y*width+x) + c] = 0xff;

我收到错误 TypeError: 'QByteArray' object does not support item assignment

那么我怎样才能改变像素的值呢?

标签: pythonimage-processing

解决方案


推荐阅读