image-utils

安装量: 59
排名: #12678

安装

npx skills add https://github.com/bria-ai/bria-skill --skill image-utils
Image Utilities
Pillow-based utilities for deterministic pixel-level image operations. Use for resize, crop, composite, format conversion, watermarks, and other standard image processing tasks.
When to Use This Skill
Post-processing AI-generated images
Resize, crop, optimize for web after generation
Format conversion
PNG ↔ JPEG ↔ WEBP with quality control
Compositing
Overlay images, paste subjects onto backgrounds
Batch processing
Resize to multiple sizes, add watermarks
Web optimization
Compress and resize for fast delivery
Social media preparation
Crop to platform-specific aspect ratios Quick Reference Operation Method Description Loading load(source) Load from URL, path, bytes, or base64 load_from_url(url) Download image from URL Saving save(image, path) Save with format auto-detection to_bytes(image, format) Convert to bytes to_base64(image, format) Convert to base64 string Resizing resize(image, width, height) Resize to exact dimensions scale(image, factor) Scale by factor (0.5 = half) thumbnail(image, size) Fit within size, maintain aspect Cropping crop(image, left, top, right, bottom) Crop to region crop_center(image, width, height) Crop from center crop_to_aspect(image, ratio) Crop to aspect ratio Compositing paste(bg, fg, position) Overlay at coordinates composite(bg, fg, mask) Alpha composite fit_to_canvas(image, w, h) Fit onto canvas size Borders add_border(image, width, color) Add solid border add_padding(image, padding) Add whitespace padding Transforms rotate(image, angle) Rotate by degrees flip_horizontal(image) Mirror horizontally flip_vertical(image) Flip vertically Watermarks add_text_watermark(image, text) Add text overlay add_image_watermark(image, logo) Add logo watermark Adjustments adjust_brightness(image, factor) Lighten/darken adjust_contrast(image, factor) Adjust contrast adjust_saturation(image, factor) Adjust color saturation blur(image, radius) Apply Gaussian blur Web optimize_for_web(image, max_size) Optimize for delivery Info get_info(image) Get dimensions, format, mode Requirements pip install Pillow requests Basic Usage from image_utils import ImageUtils

Load from URL

image

ImageUtils . load_from_url ( "https://example.com/image.jpg" )

Or load from various sources

image

ImageUtils . load ( "/path/to/image.png" )

File path

image

ImageUtils . load ( image_bytes )

Bytes

image

ImageUtils . load ( "data:image/png;base64,..." )

Base64

Resize and save

resized

ImageUtils . resize ( image , width = 800 , height = 600 ) ImageUtils . save ( resized , "output.webp" , quality = 90 )

Get image info

info

ImageUtils . get_info ( image ) print ( f" { info [ 'width' ] } x { info [ 'height' ] } { info [ 'mode' ] } " ) Resizing & Scaling

Resize to exact dimensions

resized

ImageUtils . resize ( image , width = 800 , height = 600 )

Resize maintaining aspect ratio (fit within bounds)

fitted

ImageUtils . resize ( image , width = 800 , height = 600 , maintain_aspect = True )

Resize by width only (height auto-calculated)

resized

ImageUtils . resize ( image , width = 800 )

Scale by factor

half

ImageUtils . scale ( image , 0.5 )

50% size

double

ImageUtils . scale ( image , 2.0 )

200% size

Create thumbnail

thumb

ImageUtils . thumbnail ( image , ( 150 , 150 ) ) Cropping

Crop to specific region

cropped

ImageUtils . crop ( image , left = 100 , top = 50 , right = 500 , bottom = 350 )

Crop from center

center

ImageUtils . crop_center ( image , width = 400 , height = 400 )

Crop to aspect ratio (for social media)

square

ImageUtils . crop_to_aspect ( image , "1:1" )

Instagram

wide

ImageUtils . crop_to_aspect ( image , "16:9" )

YouTube thumbnail

story

ImageUtils . crop_to_aspect ( image , "9:16" )

Stories/Reels

Control crop anchor

top_crop

ImageUtils . crop_to_aspect ( image , "16:9" , anchor = "top" ) bottom_crop = ImageUtils . crop_to_aspect ( image , "16:9" , anchor = "bottom" ) Compositing

Paste foreground onto background

result

ImageUtils . paste ( background , foreground , position = ( 100 , 50 ) )

Alpha composite (foreground must have transparency)

result

ImageUtils . composite ( background , foreground )

Fit image onto canvas with letterboxing

canvas

ImageUtils . fit_to_canvas ( image , width = 1200 , height = 800 , background_color = ( 255 , 255 , 255 , 255 ) ,

White

position

"center"

or "top", "bottom"

) Format Conversion

Convert to different formats

png_bytes

ImageUtils . to_bytes ( image , "PNG" ) jpeg_bytes = ImageUtils . to_bytes ( image , "JPEG" , quality = 85 ) webp_bytes = ImageUtils . to_bytes ( image , "WEBP" , quality = 90 )

Get base64 for data URLs

base64_str

ImageUtils . to_base64 ( image , "PNG" ) data_url = ImageUtils . to_base64 ( image , "PNG" , include_data_url = True )

Returns: "data:image/png;base64,..."

Save with format auto-detected from extension

ImageUtils . save ( image , "output.png" ) ImageUtils . save ( image , "output.jpg" , quality = 85 ) ImageUtils . save ( image , "output.webp" , quality = 90 ) Watermarks

Text watermark

watermarked

ImageUtils . add_text_watermark ( image , text = "© 2024 My Company" , position = "bottom-right" ,

bottom-left, top-right, top-left, center

font_size

24 , color = ( 255 , 255 , 255 , 128 ) ,

Semi-transparent white

margin

20 )

Logo/image watermark

logo

ImageUtils . load ( "logo.png" ) watermarked = ImageUtils . add_image_watermark ( image , watermark = logo , position = "bottom-right" , opacity = 0.5 , scale = 0.15 ,

15% of image width

margin

20 ) Adjustments

Brightness (1.0 = original, <1 darker, >1 lighter)

bright

ImageUtils . adjust_brightness ( image , 1.3 ) dark = ImageUtils . adjust_brightness ( image , 0.7 )

Contrast (1.0 = original)

high_contrast

ImageUtils . adjust_contrast ( image , 1.5 )

Saturation (0 = grayscale, 1.0 = original, >1 more vivid)

vivid

ImageUtils . adjust_saturation ( image , 1.3 ) grayscale = ImageUtils . adjust_saturation ( image , 0 )

Sharpness

sharp

ImageUtils . adjust_sharpness ( image , 2.0 )

Blur

blurred

ImageUtils . blur ( image , radius = 5 ) Transforms

Rotate (counter-clockwise, degrees)

rotated

ImageUtils . rotate ( image , 45 ) rotated = ImageUtils . rotate ( image , 90 , expand = False )

Don't expand canvas

Flip

mirrored

ImageUtils . flip_horizontal ( image ) flipped = ImageUtils . flip_vertical ( image ) Borders & Padding

Add solid border

bordered

ImageUtils . add_border ( image , width = 5 , color = ( 0 , 0 , 0 ) )

Add padding (whitespace)

padded

ImageUtils . add_padding ( image , padding = 20 )

Uniform

padded

ImageUtils . add_padding ( image , padding = ( 10 , 20 , 10 , 20 ) )

left, top, right, bottom

Web Optimization

Optimize for web delivery

optimized_bytes

ImageUtils . optimize_for_web ( image , max_dimension = 1920 ,

Resize if larger

format

"WEBP" ,

Best compression

quality

85 )

Save optimized

with open ( "optimized.webp" , "wb" ) as f : f . write ( optimized_bytes ) Integration with AI Image Generation Use with Bria AI or other image generation APIs: from bria_client import BriaClient from image_utils import ImageUtils client = BriaClient ( )

Generate with AI

result

client . generate ( "product photo of headphones" , aspect_ratio = "1:1" ) image_url = result [ 'result' ] [ 'image_url' ]

Download and post-process

image

ImageUtils . load_from_url ( image_url )

Create multiple sizes for responsive images

sizes

{ "large" : ImageUtils . resize ( image , width = 1200 ) , "medium" : ImageUtils . resize ( image , width = 600 ) , "thumb" : ImageUtils . thumbnail ( image , ( 150 , 150 ) ) }

Save all as optimized WebP

for name , img in sizes . items ( ) : ImageUtils . save ( img , f"product_ { name } .webp" , quality = 85 ) Batch Processing Example from pathlib import Path from image_utils import ImageUtils def process_catalog ( input_dir , output_dir ) : """Process all images in a directory.""" output_path = Path ( output_dir ) output_path . mkdir ( exist_ok = True ) for image_file in Path ( input_dir ) . glob ( "*.{jpg,png,webp}" ) : image = ImageUtils . load ( image_file )

Crop to square

square

ImageUtils . crop_to_aspect ( image , "1:1" )

Resize to standard size

resized

ImageUtils . resize ( square , width = 800 , height = 800 )

Add watermark

final

ImageUtils . add_text_watermark ( resized , "© My Brand" )

Save optimized

output_file

output_path / f" { image_file . stem } .webp" ImageUtils . save ( final , output_file , quality = 85 ) process_catalog ( "./raw_images" , "./processed" ) API Reference See image_utils.py for complete implementation with docstrings.

返回排行榜