微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用PyPNG,如何阅读PNG?

如何解决使用PyPNG,如何阅读PNG?

起初这似乎是一个愚蠢的问题-只需阅读文档即可-但我确实做到了,而且无法弄清楚如何读取文件并获得RGB值。简而言之,尚不清楚什么意味着什么。

有人可以告诉我如何正确读取带有RGB数据的文件吗?

解决方法

已阅读the docs,我了解您的困惑。我将参考an answer制作的Constantin,使用以下代码即可完成这项工作:

import png,array

point = (2,10) # coordinates of pixel to be painted red

reader = png.Reader(filename='image.png')
w,h,pixels,metadata = reader.read_flat()
pixel_byte_width = 4 if metadata['alpha'] else 3
pixel_position = point[0] + point[1] * w
new_pixel_value = (255,0) if metadata['alpha'] else (255,0)
pixels[
  pixel_position * pixel_byte_width :
  (pixel_position + 1) * pixel_byte_width] = array.array('B',new_pixel_value)

output = open('image-with-red-dot.png','wb')
writer = png.Writer(w,**metadata)
writer.write_array(output,pixels)
output.close()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。