parent
cc9dc0895e
commit
e9be3b12b6
@ -0,0 +1,20 @@
|
||||
from PIL import Image
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
def blend_images(img1, img2, blend_ratio):
|
||||
|
||||
img2 = img2.resize(img1.size)
|
||||
|
||||
array1 = np.array(img1)
|
||||
array2 = np.array(img2)
|
||||
|
||||
blended_array = np.round(array1 * blend_ratio + array2 * (1 - blend_ratio)).astype(np.uint8)
|
||||
|
||||
if blended_array.ndim == 2:
|
||||
blended_array = np.expand_dims(blended_array, axis=2)
|
||||
|
||||
blended_img = Image.fromarray(blended_array, 'RGB')
|
||||
|
||||
return blended_img
|
||||
|
@ -0,0 +1,7 @@
|
||||
def convert_to_black_and_white(image):
|
||||
for x in range(image.width):
|
||||
for y in range(image.height):
|
||||
pixel_color = image.getpixel((x, y))
|
||||
|
||||
if pixel_color != (255, 255, 255):
|
||||
image.putpixel((x, y), (0, 0, 0))
|
@ -0,0 +1,4 @@
|
||||
def convert_to_grayscale(image):
|
||||
|
||||
grayscale_image = image.convert("L")
|
||||
return grayscale_image
|
@ -0,0 +1,11 @@
|
||||
import imageio
|
||||
from PIL import Image
|
||||
|
||||
def creer_gif(tableau_images, output_path, duree=0.5):
|
||||
gif = []
|
||||
|
||||
for img in tableau_images:
|
||||
gif.append(Image.fromarray(img))
|
||||
|
||||
# Enregistrer le GIF
|
||||
imageio.mimsave(output_path, gif, duration=duree)
|
@ -0,0 +1,13 @@
|
||||
from resize_image import redimensionner_image
|
||||
from PIL import Image
|
||||
|
||||
def fusionner_horizontalement(image1, image2):
|
||||
nouvelle_largeur = int(image2.size[0] * (image1.size[1] / image2.size[1]))
|
||||
nouvelle_hauteur = image1.size[1]
|
||||
image2_redimensionnee = redimensionner_image(image2, nouvelle_largeur, nouvelle_hauteur)
|
||||
|
||||
result = Image.new('RGB', (image1.width + image2_redimensionnee.width, image1.height))
|
||||
result.paste(image1, (0, 0))
|
||||
result.paste(image2_redimensionnee, (image1.width, 0))
|
||||
|
||||
return result
|
@ -0,0 +1,14 @@
|
||||
from resize_image import redimensionner_image
|
||||
from PIL import Image
|
||||
|
||||
def fusionner_verticalement(image1, image2):
|
||||
|
||||
nouvelle_largeur = image1.size[0]
|
||||
nouvelle_hauteur = int(image2.size[1] * (image1.size[0] / image2.size[0]))
|
||||
image2_redimensionnee = redimensionner_image(image2, nouvelle_largeur, nouvelle_hauteur)
|
||||
|
||||
result = Image.new('RGB', (image1.width, image1.height + image2_redimensionnee.height))
|
||||
result.paste(image1, (0, 0))
|
||||
result.paste(image2_redimensionnee, (0, image1.height))
|
||||
|
||||
return result
|
@ -0,0 +1,4 @@
|
||||
from PIL import Image
|
||||
|
||||
def open_image(image_path):
|
||||
return Image.open(image_path)
|
@ -0,0 +1,17 @@
|
||||
from PIL import Image
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
def redimensionner_image(image, nouvelle_largeur, nouvelle_hauteur):
|
||||
a0, b0, _ = image.shape
|
||||
|
||||
ratio_lignes = a0 / nouvelle_largeur
|
||||
ratio_colonnes = b0 / nouvelle_hauteur
|
||||
|
||||
image_sortie = np.zeros((nouvelle_largeur, nouvelle_hauteur, 3), dtype=np.uint8)
|
||||
for ligne in range(nouvelle_largeur):
|
||||
for col in range(nouvelle_hauteur):
|
||||
for i in range(3):
|
||||
image_sortie[ligne, col, i] = image[int(ligne * ratio_lignes), int(col * ratio_colonnes), i]
|
||||
|
||||
return Image.fromarray(image_sortie)
|
Loading…
Reference in new issue