Bonjour (re),

ces deux fonctions me permettent de juxtaposer et de superposer les images :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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