In numpy/scipy I have an image stored in an array. I can display it, I want to save it using
savefig without any borders, axes, labels, titles,... Just pure image, nothing else.
I want to avoid packages like
scipy.misc.imsave, they are sometimes problematic (they do not always install well, only basic
savefig() for me
import matplotlib.pyplot as plt
To make a figure without the frame :
fig = plt.figure(frameon=False) fig.set_size_inches(w,h)
To make the content fill the whole figure
ax = plt.Axes(fig, [0., 0., 1., 1.]) ax.set_axis_off() fig.add_axes(ax)
Then draw your image on it :
ax.imshow(your_image, aspect='normal') fig.savefig(fname, dpi)
aspect parameter changes the pixel size to make sure they fill the figure size specified in
fig.set_size_inches(…). To get a feel of how to play with this sort of things, read through matplotlib's documentation, particularly on the subject of Axes, Axis and Artist.
An easier solution seems to be:
fig.savefig('out.png', bbox_inches='tight', pad_inches=0)