Comme le titre l'indique, j'essaie de convertir un fichier fig
à un PIL.Image
. Je suis actuellement en mesure de le faire en sauvegardant d'abord le fichier fig
sur le disque, puis d'ouvrir ce fichier à l'aide de Image.open()
mais le processus prend plus de temps que prévu et j'espère qu'en sautant l'étape de l'enregistrement local, il sera un peu plus rapide.
Voici ce que j'ai pour l'instant :
# build fig
figsize, dpi = self._calc_fig_size_res(img_height)
fig = plt.Figure(figsize=figsize)
canvas = FigureCanvas(fig)
ax = fig.add_subplot(111)
ax.imshow(torch.from_numpy(S).flip(0), cmap = cmap)
fig.subplots_adjust(left = 0, right = 1, bottom = 0, top = 1)
ax.axis('tight'); ax.axis('off')
# export
fig.savefig(export_path, dpi = dpi)
# open image as PIL object
img = Image.open(export_path)
J'ai essayé de le faire après avoir construit la figurine (juste avant l'étape d'exportation) :
pil_img = Image.frombytes('RGB', canvas.get_width_height(), canvas.tostring_rgb())
Mais l'image n'est pas affichée dans son intégralité. On dirait qu'il s'agit d'un recadrage du coin supérieur gauche, mais il pourrait s'agir d'une représentation bizarre des données - je travaille avec des spectrogrammes, de sorte que les images sont assez abstraites.