cjm-pil-utils

Some PIL utility functions I frequently use.

Install

pip install cjm_pil_utils

How to use

get_img_files

from cjm_pil_utils.core import get_img_files
from pathlib import Path
img_dir = Path('../images/')
img_paths = get_img_files(img_dir)
img_paths
[PosixPath('../images/cat.jpg'), PosixPath('../images/depth-cat.png')]

resize_img

from cjm_pil_utils.core import resize_img
from PIL import Image  # For working with images
img_path = img_paths[0]
src_img = Image.open(img_path).convert('RGB')
print(f"Image Size: {src_img.size}")

resized_img = resize_img(src_img, target_sz=384, divisor=32)
print(f"New Image Size: {resized_img.size}")
Image Size: (768, 512)
New Image Size: (576, 384)

stack_imgs

from cjm_pil_utils.core import stack_imgs
stacked_imgs = stack_imgs([resized_img, resized_img])
print(f"Stacked Image Size: {stacked_imgs.size}")
Stacked Image Size: (576, 768)

avg_images

from cjm_pil_utils.core import avg_images
img_1, img_2 = (Image.open(path) for path in img_paths)
avg_img = avg_images(img_1, img_2, 0.5)

crop_square

from cjm_pil_utils.core import crop_square
crop_square(src_img).size
(512, 512)