%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

from IPython.display import display, Image

from glob import glob

import PIL
images = [ PIL.Image.open(f) for f in glob('img/*') ]

def img2array(im):
    if im.mode != 'RGB':
        im = im.convert(mode='RGB')
    return np.fromstring(im.tostring(), dtype='uint8').reshape((im.size[1], im.size[0], 3))

np_images = [ img2array(im) for im in images ]

for img in np_images:
    plt.figure()
    plt.imshow(img)

for im in images:
    display(Image(filename=im.filename, retina=True))

    from io import BytesIO
    
    def display_img_array(ima):
        im = PIL.Image.fromarray(ima)
        bio = BytesIO()
        im.save(bio, format='png')
        display(Image(bio.getvalue(), format='png', retina=True))
    
    for ima in np_images:
        display_img_array(ima)