我无法设置 PNG 图像的像素数据

莱利·菲茨帕特里克

我有大量的图像。有些是JPEG,有些是PNG。对于 PNG,我正在制作一个程序将所有透明像素转换为纯白色。但是,不仅不起作用,某些背景还会更改为随机颜色,例如红色和绿色。我不知道我做错了什么,所以这是我的代码:

import os
from PIL import Image

files = os.listdir("/Users/Riley/PycharmProjects/myNN/logos")

for file in files:
    print(file)

    image = Image.open("/Users/Riley/PycharmProjects/myNN/logos/" + file)
    pixels = image.load()

    if image.mode == 'RGBA':
        print("RGBA")
        for x in range(image.size[0]):
            for y in range(image.size[1]):
                if pixels[x, y][3] < 1:
                    pixels[x, y] == (255, 255, 255, 1)
                    print(pixels[x, y])

        image = image.convert('RGB')

print(pixels[x, y])是进行故障排除。我没有收到任何错误,但它会打印出随机 RGBA 值,尽管刚刚将其设置为 (255, 255, 255, 1)。谢谢。

马克·塞切尔

你不需要这样做。制作与透明图像大小相同的白色新图像,然后将透明图像粘贴在顶部,白色就会显示出来,这样会更容易、更快捷。

from PIL import Image

# Open original with transparency
im = Image.open('image.png').convert('RGBA')

# Make white background same size
white = Image.new('RGB',im.size,color='white')

# Paste onto background
white.paste(im,mask=im)

# Save
white.save('result.png')

顺便说一句,您可以在不编写任何 Python 的情况下做到这一点,只需使用安装在大多数 Linux 发行版上并且可用于 macOS 和 Windows 的ImageMagick

首先,创建一个输出目录,结果将放在那里:

mkdir output

然后将您所有的 PNG 一次性压平到白色背景上:

magick mogrify -path output -background white -flatten /Users/Riley/PycharmProjects/myNN/logos/*png

如果您的ImageMagick是 v6 或更早版本,请删除magick并使用:

mkdir output
mogrify -path output -background white -flatten /Users/Riley/PycharmProjects/myNN/logos/*png

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解释PNG像素数据

来自分类Dev

如何从.PNG获取像素数据?

来自分类Dev

打开jpeg或png图像作为c或c ++中的像素数据

来自分类Dev

在C或C ++中将jpeg或png图像打开为像素数据

来自分类Dev

使用 UIGraphicsImageRenderer 图像检索像素数据无法正常工作

来自分类Dev

如何在图像C的左侧或右侧设置标签X像素数

来自分类Dev

如何在我的python程序中计算canny图像的非零像素数

来自分类Dev

从JPG图像读取像素数据

来自分类Dev

我的位图怎么了?如何获取我绘制的像素数据?

来自分类Dev

我正在尝试将像素数据转换为OpenCV Mat对象

来自分类Dev

将页面顶部的X像素数量设置为白色背景,然后将其余像素设置为黑色,然后将图像放置在中心位置

来自分类Dev

一起使用对象跟踪和像素数据,没有得到我想要的?

来自分类Dev

将图像像素数据转换为坐标数组

来自分类Dev

从位图图像文件读取像素数据值

来自分类Dev

将图像的原始像素数据旋转180度

来自分类Dev

使用回调获取图像像素数据

来自分类Dev

将像素数据转换为图像

来自分类Dev

如何获取使用WPF渲染的jpeg图像上两点之间的精确像素数。我的解决方案不同于GIMP

来自分类Dev

为什么这个像素抽屉不能让我更改窗口大小/像素数?

来自分类Dev

Webpack无法加载png图像

来自分类Dev

从xvfb读取像素数据

来自分类Dev

QImage精确读取像素数据

来自分类Dev

如何从画布获取像素数据

来自分类Dev

我应该如何查询 Retina 硬件中的物理像素数?

来自分类Dev

从给定的图像数据中提取像素数据。需要帮助了解代码

来自分类Dev

如何通过C ++获取图像的所有像素数据(RGB)

来自分类Dev

如何更新此神经网络以使用图像像素数据

来自分类Dev

如何从包含二进制像素数据的数组列表中创建新图像

来自分类Dev

如何在iOS的Xcode中使用CFDataRef图像像素数据快速创建NSMutableArray

Related 相关文章

  1. 1

    解释PNG像素数据

  2. 2

    如何从.PNG获取像素数据?

  3. 3

    打开jpeg或png图像作为c或c ++中的像素数据

  4. 4

    在C或C ++中将jpeg或png图像打开为像素数据

  5. 5

    使用 UIGraphicsImageRenderer 图像检索像素数据无法正常工作

  6. 6

    如何在图像C的左侧或右侧设置标签X像素数

  7. 7

    如何在我的python程序中计算canny图像的非零像素数

  8. 8

    从JPG图像读取像素数据

  9. 9

    我的位图怎么了?如何获取我绘制的像素数据?

  10. 10

    我正在尝试将像素数据转换为OpenCV Mat对象

  11. 11

    将页面顶部的X像素数量设置为白色背景,然后将其余像素设置为黑色,然后将图像放置在中心位置

  12. 12

    一起使用对象跟踪和像素数据,没有得到我想要的?

  13. 13

    将图像像素数据转换为坐标数组

  14. 14

    从位图图像文件读取像素数据值

  15. 15

    将图像的原始像素数据旋转180度

  16. 16

    使用回调获取图像像素数据

  17. 17

    将像素数据转换为图像

  18. 18

    如何获取使用WPF渲染的jpeg图像上两点之间的精确像素数。我的解决方案不同于GIMP

  19. 19

    为什么这个像素抽屉不能让我更改窗口大小/像素数?

  20. 20

    Webpack无法加载png图像

  21. 21

    从xvfb读取像素数据

  22. 22

    QImage精确读取像素数据

  23. 23

    如何从画布获取像素数据

  24. 24

    我应该如何查询 Retina 硬件中的物理像素数?

  25. 25

    从给定的图像数据中提取像素数据。需要帮助了解代码

  26. 26

    如何通过C ++获取图像的所有像素数据(RGB)

  27. 27

    如何更新此神经网络以使用图像像素数据

  28. 28

    如何从包含二进制像素数据的数组列表中创建新图像

  29. 29

    如何在iOS的Xcode中使用CFDataRef图像像素数据快速创建NSMutableArray

热门标签

归档