转换PNG图像(使用pypng),用于mat.figimage的matplotlib

时间:2014-01-18 19:24:28

标签: python matplotlib pypng

我需要一些帮助。我有一个用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

0 个答案:

没有答案