python - 如何在 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
那么我怎样才能改变像素的值呢?
解决方案
推荐阅读
- shell - Shell循环遍历特定目录中的所有文件
- android - html中css变换的android版本是什么
- authentication - 使用 Keycloak 作为 Oauth 2.0 IdP (Mercado Libre) 的代理
- java - Java中带有手机号码和OTP的Spring安全性
- python - Python:如何创建依赖于实例中其他属性的属性
- multithreading - JNI 环境中 pthread_cond_broadcast() 和 pthread_cond_timedwait() 的等效函数是什么?
- c# - LEFT AND RIGHT 函数 lambda 表达式 c#
- google-cloud-platform - 如何在重复值列中检索 5 个最大数字?
- apache-spark - 如果在读取数据时,Spark 的 partitionColumn 中不存在 upperBound 和 lowerBound 的值怎么办?
- laravel - 当模型在 Laravel 中作为关系删除时,观察者删除不起作用