python - 更改像素透明背景

标签 python image

我有几个不同的图像,我想将图像的每个透明像素更改为不同的颜色。

我找到了一种提取图像透明像素的所有 RGB 值的方法,如下所示:

data[data[:,:,3]==0,:3][0]

现在,当我尝试为该像素分配不同的数组时,它不起作用:

data[data[:,:,3]==0,:3][0] = np.array([255,0,255])

print(data[data[:,:,3]==0,:3][0])
Out[1]: [0 0 0]

如何更改此像素?

最佳答案

虽然矢量化操作可能可用于我想要实现的目标,但我发现可行的解决方案如下。

for h in range(0,data.shape[0]):
    for w in range(0,data.shape[1]):
        if data[h, w][3] == 0:
            data[h, w] = np.random.randint(0,255), np.random.randint(0,255), np.random.randint(0,255), 255

这会遍历图像中的每个像素,然后检查该像素是否透明,如果是,则随机化该像素的 RGB 值。可能相当慢,但按预期工作!

关于python - 更改像素透明背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017327/

相关文章:

Python:如何用字符串和数字重命名列

python - 使用 flask 从url获取多个参数

c# - 灰度图像的 MSE 计算

image - 每个颜色 channel 的位数是什么意思?

ios - 下载图片未显示 iOS Swift

c# - WP7开发,从代码改变Image控件的大小

python - 将日期数组转换为日期时间格式并比较它们

python - 如何在 django 中暂时禁用外键约束

python - python 中的 Countif() 单词

javascript - 使用 Javascript 和 DOM 在 div 元素中加载图像