Pillow Image Module
Image is the core module of the Pillow library, providing basic image processing functionality.
The following are the most commonly used methods in the Image module and their descriptions:
| Method | Description | Example |
| --- | --- | --- |
| `Image.open(fp, mode='r')` | Open and identify image file | `img = Image.open('image.jpg')` |
| `Image.new(mode, size, color=0)` | Create new image | `new_img = Image.new('RGB', (500, 500), 'blue')` |
| `Image.save(fp, format=None, **params)` | Save image | `img.save('output.png')` |
| `Image.show(title=None, command=None)` | Display image | `img.show()` |
| `Image.resize(size, resample=None, box=None)` | Resize image | `img.resize((200, 200))` |
| `Image.rotate(angle, resample=0, expand=0)` | Rotate image | `img.rotate(45)` |
| `Image.crop(box=None)` | Crop image | `img.crop((100, 100, 400, 400))` |
| `Image.paste(im, box=None, mask=None)` | Paste image | `img.paste(logo, (50, 50))` |
| `Image.convert(mode, matrix=None, dither=None)` | Convert image mode | `img.convert('L')` |
| `Image.filter(filter)` | Apply filter | `img.filter(ImageFilter.BLUR)` |
| `Image.copy()` | Copy image | `copy = img.copy()` |
| `Image.thumbnail(size)` | Create thumbnail | `img.thumbnail((100, 100))` |
| `Image.getpixel(xy)` | Get pixel value | `pixel = img.getpixel((50, 50))` |
| `Image.putpixel(xy, value)` | Set pixel value | `img.putpixel((50, 50), (255, 0, 0))` |
| `Image.split()` | Split channels | `r, g, b = img.split()` |
| `Image.merge(mode, bands)` | Merge channels | `Image.merge('RGB', (r, g, b))` |
* * *
## 3. Common Attributes
In addition to methods, Image objects also have some important attributes:
| Attribute | Description | Example |
| --- | --- | --- |
| `format` | Image format | `print(img.format)` |
| `size` | Image size (width, height) | `print(img.size)` |
| `width` | Image width | `print(img.width)` |
| `height` | Image height | `print(img.height)` |
| `mode` | Image mode | `print(img.mode)` |
| `info` | Image related information dictionary | `print(img.info)` |
* * *
## Practical Application Examples
### Basic Image Operations
## Example
from PIL import Image
# Open image
img = Image.open('example.jpg')
# Display image information
print(f"Format: {img.format}, Size: {img.size}, Mode: {img.mode}")
# Resize and save
resized_img = img.resize((300,300))
resized_img.save('resized_example.jpg')
# Convert to grayscale
gray_img = img.convert('L')
gray_img.save('gray_example.jpg')
### Image Processing
## Example
from PIL import Image, ImageFilter
img = Image.open('example.jpg')
# Apply blur filter
blurred = img.filter(ImageFilter.BLUR)
blurred.save('blurred.jpg')
# Apply contour filter
contour = img.filter(ImageFilter.CONTOUR)
contour.save('contour.jpg')
# Rotate image
rotated = img.rotate(45, expand=True)
rotated.save('rotated.jpg')
* * *
## Advanced Features
### Image Composition
## Example
from PIL import Image
# Open two images
img1 = Image.open('background.jpg')
img2 = Image.open('foreground.png')
# Ensure both images have the same size
img2 = img2.resize(img1.size)
# Composite images (assuming foreground.png has transparency channel)
composite = Image.alpha_composite(img1.convert('RGBA'), img2.convert('RGBA'))
composite.save('composite.png')
### Batch Processing
## Example
import os
from PIL import Image
input_dir ='input_images/'
output_dir ='output_images/'
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename in os.listdir(input_dir):
if filename.endswith('.jpg'):
img = Image.open(os.path.join(input_dir, filename))
# Convert to grayscale and save
gray_img = img.convert('L')
gray_img.save(os.path.join(output_dir, f"gray_{filename}"))
YouTip