Pillow (PIL) & Python Basics Cheat Sheet

1. Installation

pip install pillow  

Verify Installation:

from PIL import Image
print(Image.__version__)  

2. Import Pillow

from PIL import Image, ImageDraw, ImageFont, ImageFilter  

3. Opening and Displaying an Image

img = Image.open('image.jpg')  
img.show()  

4. Saving an Image

img.save('output.jpg')  

5. Image Properties

print(img.format)     # Image format (JPEG, PNG)  
print(img.size)       # (width, height)  
print(img.mode)       # Color mode (RGB, L)  

6. Resizing an Image

resized = img.resize((300, 200))  
resized.show()  

7. Cropping an Image

cropped = img.crop((50, 50, 200, 200))  # (left, top, right, bottom)  
cropped.show()  

8. Rotating and Flipping

rotated = img.rotate(45)  
flipped = img.transpose(Image.FLIP_LEFT_RIGHT)  
rotated.show()  
flipped.show()  

9. Converting to Grayscale

gray = img.convert('L')  
gray.show()  

10. Drawing on Images

draw = ImageDraw.Draw(img)  
draw.rectangle([50, 50, 150, 150], outline='red', width=5)  
draw.text((10, 10), "Hello!", fill='white')  
img.show()  

11. Adding Filters

blurred = img.filter(ImageFilter.BLUR)  
sharpened = img.filter(ImageFilter.SHARPEN)  
blurred.show()  
sharpened.show()  

12. Adding Text (Custom Fonts)

font = ImageFont.truetype("arial.ttf", 40)  
draw = ImageDraw.Draw(img)  
draw.text((50, 50), "Hello World!", font=font, fill='blue')  
img.show()  

13. Creating a New Image

new_img = Image.new('RGB', (400, 300), color='green')  
new_img.show()  

14. Merging Images (Pasting)

background = Image.new('RGB', (500, 500), color='white')  
foreground = img.resize((200, 200))  
background.paste(foreground, (150, 150))  
background.show()  

15. Applying Transparency (Alpha Channel)

img = img.convert("RGBA")  
pixels = img.load()  

for y in range(img.height):  
    for x in range(img.width):  
        r, g, b, a = pixels[x, y]  
        if r > 200 and g > 200:  
            pixels[x, y] = (r, g, b, 0)  # Set transparent  

img.show()  

16. Thumbnail Generation

img.thumbnail((150, 150))  
img.show()  

17. Drawing Shapes

draw = ImageDraw.Draw(img)  
draw.ellipse([100, 100, 200, 200], outline='yellow', width=4)  
draw.line((0, 0, img.width, img.height), fill='blue', width=3)  
img.show()  

18. Image Blending

img1 = Image.open('image1.jpg')  
img2 = Image.open('image2.jpg')  
blended = Image.blend(img1, img2, alpha=0.5)  
blended.show()  

19. Image Masking

mask = Image.new("L", img.size, 128)  # 128 is 50% opacity  
img.putalpha(mask)  
img.show()  

20. Combining Multiple Images (Grid Layout)

images = [Image.open('image1.jpg'), Image.open('image2.jpg')]  
widths, heights = zip(*(i.size for i in images))  

total_width = sum(widths)  
max_height = max(heights)  

combined = Image.new('RGB', (total_width, max_height))  
x_offset = 0  

for img in images:  
    combined.paste(img, (x_offset, 0))  
    x_offset += img.width  

combined.show()  

21. Image Metadata (EXIF)

exif_data = img._getexif()  
for tag, value in exif_data.items():  
    print(tag, value)  

22. Key Pillow Functions

Function Description
Image.open() Opens an image file
Image.save() Saves an image
resize() Resizes an image
rotate() Rotates an image
crop() Crops an image
convert() Converts image mode
filter() Applies filters (BLUR, SHARPEN, etc.)
transpose() Flips or rotates image
draw.rectangle() Draws a rectangle
putalpha() Adds transparency
thumbnail() Creates a thumbnail
paste() Pastes one image over another

Example: Simple Image Pipeline (Resize, Filter, Text)

img = Image.open('image.jpg')  
img = img.resize((300, 300))  
img = img.filter(ImageFilter.CONTOUR)  

draw = ImageDraw.Draw(img)  
draw.text((20, 20), 'OpenCV Rocks!', fill='blue')  
img.show()

Related posts

Visual Basic .NET (VB.NET) Basics Cheat Sheet

C# Basics Cheat Sheet

The Sun Basics Cheat Sheet