grouper des images jpg par 6
Bonjour (re),
ces deux fonctions me permettent de juxtaposer et de superposer les images :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| def horizontal(liste,repertoire):
imgs = [ Image.open(i) for i in liste ]
min_shape = sorted( [(np.sum(i.size), i.size ) for i in imgs])[0][1]
imgs_comb = np.hstack([i.resize(min_shape) for i in imgs])
imgs_comb = Image.fromarray( imgs_comb)
imgs_comb.save( repertoire + '\\horizontal.jpg' )
#superpose les images
def vertical(liste,repertoire):
imgs2 = [ Image.open(i) for i in liste ]
min_shape = sorted( [(np.sum(i.size), i.size ) for i in imgs2])[0][1]
imgs2_comb = np.vstack([i.resize(min_shape) for i in imgs2])
imgs2_comb = Image.fromarray( imgs2_comb)
imgs2_comb.save( repertoire +'\\vertical.jpg' ) |
Autant les images qui ont des tailles différentes fonctionnent sans soucis par contre les images qui ont des "bit depth" différents bloquent la fonction.
Les images encodées en 8 bits et en 24 bits bloquent tout
Du coup j'ai trouvé moyen de convertir les images mais pareil ça ne marche pas
Code:
1 2 3 4
| for img in liste :
imgC=Image.open(img)
a=imgC.convert("P", palette=Image.ADAPTIVE, colors=8)
a.save(repertoire+'\\C.jpg') |
il me marque une erreur comme quoi le mode P ne peut pas être utilisée
mon but étant d'intégrer les 6 images dans une page pdf
vers ou faut il que je me tourner ?
intégrer 6 images dans une page pdf directement via img2pdf ou autre, (je n'ai trouvé que la solution de mettre une image par page pour l'instant)
ou continuer à chercher un moyen de convertir les images 24 bits en 8 bits ?
Merci pour vos conseils, suggestions