Cargar imagen de memoria en Kivy

Tengo una imagen en la memoria, un formato (salida de pyplot) y quiero mostrarla directamente en Android a través de Kivy, pero no quiero crear un archivo de imagen. ¿Hay alguna manera de hacer esto? En pyplot puedo generar el archivo como un objeto escribiéndolo, pero no sé cómo colocarlo en Kivy.

Podría guardar el archivo en un búfer con StringIO (vea esto: Binary buffer en Python ).

Algo como:

from StringIO import StringIO buff = StringIO() plt.savefig(buff) buff.seek(0) from kivy.core.image.img_pygame import ImageLoaderPygame imgdata = ImageLoaderPygame(buff)._data 

Similar a la primera respuesta pero no requiere img_pygame:

  from kivy.core.image import Image as CoreImage from kivy.uix.image import Image import io import qrcode # specific to my usecase, interchangeable with Pil.Image # OR from PIL import Image as PilImage msg = "text" image = Image(source="") imgIO = io.BytesIO() qr = qrcode.make(msg) # returns PilImage object qr.save(imgIO, ext='png') # equivalent to Pil.Image.save() imgIO.seek(0) imgData = io.BytesIO(imgIO.read()) image.texture = CoreImage(imgData, ext='png').texture image.reload()