1

我正在使用 matplotlib 和 pygame 写入帧缓冲设备,该设备是 160x128 LCD 设备。

当我绘制图表,将其保存为 PNG 并将其加载到 LCD 时,它看起来很完美;

matplotlib.use('Agg')
TFTxSize = 2.28
TFTySize = 1.63
ax = fig.add_subplot(111)
fig.set_size_inches(TFTxSize, TFTySize)
pylab.plot(temp,linewidth=2, antialiased=True)
pylab.savefig('gp.png', facecolor=fig.get_facecolor(),bbox_inches='tight',     dpi=80,pad_inches=0.03)
pil_im = Image.open('gp.png')
pil_out = pil_im.rotate(90)
pil_out.save("gp.png")
img = pygame.image.load('gp.png')
screen.blit(img,(0,0))
pygame.display.flip()

我正在考虑尝试更动态地将其保存到内存而不是写入文件。我发现试过这个;

canvas = agg.FigureCanvasAgg(fig)
canvas.draw()
renderer = canvas.get_renderer()
raw_data = renderer.tostring_rgb()
size = canvas.get_width_height()
surf = pygame.image.fromstring(raw_data, size, "RGB")
surfnew = pygame.transform.rotate(surf, 90)
screen.blit(surfnew, (0,0))
pygame.display.flip()

它确实有效,但是它有点大……我丢失了一些格式,当我将它保存到磁盘时,我可以用第一段代码来完成。“<strong>bbox_inches='tight'” 和 “<strong>pad_inches=0.03” 知道如何在代码底部输入这两个格式选项吗?

4

0 回答 0