Matplotlib, как рисовать на рисунке на изображении PIL

У меня здесь новая проблема: я хочу ввести объект изображения PIL, а затем нарисовать фигуру, сгенерированную из matplotlib, а затем вернуть объект изображения PIL. Как я мог этого добиться?


person user469652    schedule 15.10.2010    source источник


Ответы (1)


Почему бы вам не создать изображение в matplotlib, сохранить его, а затем импортировать в pil?

xdata = pylab.arange(1961, 2031, 1)
pylab.figure(num=None, figsize=(20.48, 10.24), dpi=100, facecolor='w', edgecolor='k')
pylab.plot(xdata, ydata, linewidth=3.0)
pylab.xlabel(xlabel)
pylab.ylabel(ylabel)
pylab.title(title)
pylab.grid(True)

ram = cStringIO.StringIO()
pylab.savefig(ram, format='png')

import Image
im = Image.open(ram.read())
person relima    schedule 15.10.2010
comment
OP, вероятно, хочет наложить график на существующее изображение, которое не адресовано. Я бы либо использовал pylab.savefig с включенным флагом transparent, а затем объединил изображения в PIL, либо описал бы, как использовать imread pylab. - person Paul; 19.10.2010
comment
У меня не работает, я получаю следующую ошибку: /usr/lib/python2.7/dist-packages/PIL/Image.pyc in open(fp, mode) 2286 if isPath(fp): 2287 filename = fp -> 2288 fp = builtins.open(fp, "rb") 2289 else: 2290 filename = "" IOError: [Errno 2] No such file or directory: '' - person Eddy; 29.03.2016