我需要一些帮助。我有一个用matplotlib生成的图表,最后一个要求是在图表上显示公司徽标(.PNG文件)。但是,我无法使用Python图像库(PIL)执行此任务,因此使用pypng来读取徽标,但经过多次搜索后,我找不到将图像转换为matplotlib'兼容'的方法,以便与figmimage一起使用(在图表上叠加徽标)。
pypng文档展示了如何使用numpy转换图像以用于matplotlib,但它们的示例是Python 2.x,我不知道如何转换示例(itertools.imap)以用于Python 3)。
这是我到目前为止所拥有的:
import png
import numpy
from matplotlib.figure import Figure
fig = Figure(figsize=(8.5, 4.1))
r = png.Reader('/home/jm/Desktop/logo.png')
r.read()
rows, cols, pngdata, d = r.asFloat()
rows = 28,cols = 500,d ['planes'] = 4 有500列,因为我认为这是png是RGBA格式,即。每个像素4个值 行。
# My poor attempt to map the pypng image to numpy
img = numpy.reshape(pngdata, (rows, cols, d['planes']))
fig.figimage(img, 0, 0)
如果你想知道的话,我会在图表上看到垃圾像素......我已经阅读了文档,但我显然遗漏了一些东西,但我不知道是什么。
任何帮助将不胜感激!
谢谢,
JM