image-filter-lab

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Image Filter Lab

图片滤镜实验室

Apply professional filters and effects to images.
为图片应用专业滤镜与特效。

Features

功能特性

  • Color Filters: Sepia, B&W, color tint, saturation
  • Blur Effects: Gaussian, motion, radial blur
  • Artistic Filters: Vintage, film grain, vignette
  • Enhancements: Sharpen, contrast, brightness
  • Custom Presets: Save and apply filter combinations
  • Batch Processing: Apply filters to multiple images
  • 色彩滤镜:深褐(Sepia)、黑白(B&W)、色彩色调、饱和度调整
  • 模糊效果:高斯模糊、运动模糊、径向模糊
  • 艺术滤镜:复古(Vintage)、胶片颗粒、暗角(Vignette)
  • 图像增强:锐化、对比度、亮度调整
  • 自定义预设:保存并应用滤镜组合
  • 批量处理:为多张图片应用滤镜

Quick Start

快速开始

python
from image_filter import ImageFilterLab

lab = ImageFilterLab()
lab.load("photo.jpg")
python
from image_filter import ImageFilterLab

lab = ImageFilterLab()
lab.load("photo.jpg")

Apply vintage filter

Apply vintage filter

lab.vintage() lab.save("photo_vintage.jpg")
lab.vintage() lab.save("photo_vintage.jpg")

Chain multiple effects

Chain multiple effects

lab.load("photo.jpg") lab.brightness(1.2).contrast(1.1).saturation(0.8).vignette() lab.save("photo_edited.jpg")
undefined
lab.load("photo.jpg") lab.brightness(1.2).contrast(1.1).saturation(0.8).vignette() lab.save("photo_edited.jpg")
undefined

CLI Usage

CLI 使用方式

bash
undefined
bash
undefined

Apply single filter

Apply single filter

python image_filter.py --input photo.jpg --filter vintage --output result.jpg
python image_filter.py --input photo.jpg --filter vintage --output result.jpg

Apply multiple filters

Apply multiple filters

python image_filter.py -i photo.jpg --sepia --vignette --sharpen -o result.jpg
python image_filter.py -i photo.jpg --sepia --vignette --sharpen -o result.jpg

Adjust parameters

Adjust parameters

python image_filter.py -i photo.jpg --brightness 1.2 --contrast 1.1 -o result.jpg
python image_filter.py -i photo.jpg --brightness 1.2 --contrast 1.1 -o result.jpg

Batch process

Batch process

python image_filter.py --batch photos/ --filter vintage --output-dir filtered/
undefined
python image_filter.py --batch photos/ --filter vintage --output-dir filtered/
undefined

API Reference

API 参考

ImageFilterLab Class

ImageFilterLab 类

python
class ImageFilterLab:
    def __init__(self)

    # Loading
    def load(self, filepath: str) -> 'ImageFilterLab'

    # Color Filters
    def grayscale(self) -> 'ImageFilterLab'
    def sepia(self, intensity: float = 1.0) -> 'ImageFilterLab'
    def negative(self) -> 'ImageFilterLab'
    def tint(self, color: Tuple, intensity: float = 0.3) -> 'ImageFilterLab'

    # Adjustments
    def brightness(self, factor: float) -> 'ImageFilterLab'
    def contrast(self, factor: float) -> 'ImageFilterLab'
    def saturation(self, factor: float) -> 'ImageFilterLab'
    def hue(self, shift: int) -> 'ImageFilterLab'
    def temperature(self, value: int) -> 'ImageFilterLab'

    # Blur Effects
    def blur(self, radius: int = 5) -> 'ImageFilterLab'
    def motion_blur(self, size: int = 15, angle: int = 0) -> 'ImageFilterLab'
    def radial_blur(self, amount: int = 10) -> 'ImageFilterLab'

    # Sharpen
    def sharpen(self, factor: float = 1.0) -> 'ImageFilterLab'
    def unsharp_mask(self, radius: int = 2, percent: int = 150) -> 'ImageFilterLab'

    # Artistic
    def vintage(self) -> 'ImageFilterLab'
    def film_grain(self, amount: int = 25) -> 'ImageFilterLab'
    def vignette(self, radius: float = 0.8, intensity: float = 0.5) -> 'ImageFilterLab'
    def posterize(self, levels: int = 4) -> 'ImageFilterLab'
    def solarize(self, threshold: int = 128) -> 'ImageFilterLab'

    # Presets
    def apply_preset(self, preset: str) -> 'ImageFilterLab'
    def save_preset(self, name: str, operations: List) -> None

    # Output
    def save(self, filepath: str, quality: int = 95) -> str
    def reset(self) -> 'ImageFilterLab'

    # Batch
    def batch_process(self, input_dir: str, output_dir: str,
                     filter_func: callable) -> List[str]
python
class ImageFilterLab:
    def __init__(self)

    # Loading
    def load(self, filepath: str) -> 'ImageFilterLab'

    # Color Filters
    def grayscale(self) -> 'ImageFilterLab'
    def sepia(self, intensity: float = 1.0) -> 'ImageFilterLab'
    def negative(self) -> 'ImageFilterLab'
    def tint(self, color: Tuple, intensity: float = 0.3) -> 'ImageFilterLab'

    # Adjustments
    def brightness(self, factor: float) -> 'ImageFilterLab'
    def contrast(self, factor: float) -> 'ImageFilterLab'
    def saturation(self, factor: float) -> 'ImageFilterLab'
    def hue(self, shift: int) -> 'ImageFilterLab'
    def temperature(self, value: int) -> 'ImageFilterLab'

    # Blur Effects
    def blur(self, radius: int = 5) -> 'ImageFilterLab'
    def motion_blur(self, size: int = 15, angle: int = 0) -> 'ImageFilterLab'
    def radial_blur(self, amount: int = 10) -> 'ImageFilterLab'

    # Sharpen
    def sharpen(self, factor: float = 1.0) -> 'ImageFilterLab'
    def unsharp_mask(self, radius: int = 2, percent: int = 150) -> 'ImageFilterLab'

    # Artistic
    def vintage(self) -> 'ImageFilterLab'
    def film_grain(self, amount: int = 25) -> 'ImageFilterLab'
    def vignette(self, radius: float = 0.8, intensity: float = 0.5) -> 'ImageFilterLab'
    def posterize(self, levels: int = 4) -> 'ImageFilterLab'
    def solarize(self, threshold: int = 128) -> 'ImageFilterLab'

    # Presets
    def apply_preset(self, preset: str) -> 'ImageFilterLab'
    def save_preset(self, name: str, operations: List) -> None

    # Output
    def save(self, filepath: str, quality: int = 95) -> str
    def reset(self) -> 'ImageFilterLab'

    # Batch
    def batch_process(self, input_dir: str, output_dir: str,
                     filter_func: callable) -> List[str]

Built-in Presets

内置预设

  • vintage: Sepia tint, reduced saturation, vignette
  • film: Slight desaturation, grain, crushed blacks
  • instagram: High contrast, warm tint, vignette
  • noir: High contrast B&W, strong vignette
  • warm: Warm color temperature, increased saturation
  • cool: Cool color temperature, slightly desaturated
  • dramatic: High contrast, deep shadows
  • dreamy: Soft blur, bright highlights, low contrast
  • vintage:深褐色调、降低饱和度、暗角效果
  • film:轻微去饱和、胶片颗粒、暗部压暗
  • instagram:高对比度、暖色调、暗角效果
  • noir:高对比度黑白、强暗角
  • warm:暖色温、提高饱和度
  • cool:冷色温、轻微去饱和
  • dramatic:高对比度、深邃阴影
  • dreamy:柔焦、高光提亮、低对比度

Dependencies

依赖项

  • pillow>=10.0.0
  • opencv-python>=4.8.0
  • numpy>=1.24.0
  • pillow>=10.0.0
  • opencv-python>=4.8.0
  • numpy>=1.24.0