On peut coller une image sur une autre avec la fonction monImage.alpha_composite().
Le fonctionnement est assez simple :
Pour mélanger 2 images, il faut qu'elles aient le même mode et la même taille.
Puis on utilise Image.blend(image1, image2, pourcentage). Le pourcentage correspond à la visibilité de l'image 1 à l'intérieur de l'image 2: plus il est élevé, plus on verra l'image 1.
Image 1
Image 2
Mélange des deux
Le module ImageChops te permet de fusionner deux images avec des effets de fusion différents :)
Sur tous les prochains exemples, tu verras un comparatif des deux images originales, puis du résultat de la fusion !
La fonction ImageChops.add(image1, image2) te permet de fusionner deux images en ajoutant les couleurs de tous leurs pixels.
Par exemple, si un pixel est gris sur la première image (100,100,100) et turquoise sur la deuxième (0,200,200), le nouveau pixel sera égal à la somme des deux (avec toujours un max de 255 par valeur).
Le nouveau pixel sera donc égal à (0,255,100) ! C'est pour ça que le résultat des deux images ci-dessous est si blanc : comme l'image de chat a beaucoup de pixels blancs de base (255,255,255), avec la somme de la deuxième photo, le rendu final est très blanc :)
La fonction ImageChops.darker(image1, image2) va parcourir chaque pixel des deux images, et ne va garder que le pixel le plus sombre pour le rendu final.
La fonction ImageChops.lighter(image1, image2) va parcourir chaque pixel des deux images, et ne va garder que le pixel le plus clair pour le rendu final.
La fonction ImageChops.difference(image1, image2) va parcourir chaque pixel des deux images, et va faire la différence des couleurs des deux pixels pour le rendu final.
Par exemple, si un pixel est blanc (255, 255, 255) et l'autre est bleu (0, 0, 255), le pixel final sera jaune (255, 255, 0) !
La fonction ImageChops.multiply(image1, image2) va fusionner les deux images en gardant toutes les couleurs principales des deux images, pour un rendu final le plus propre possible :)