Skip to content

v0.0.4

Choose a tag to compare

@offerrall offerrall released this 01 Dec 04:16
· 30 commits to main since this release

Added

  • New Effect: Effect.stroke() - Professional-quality stroke/outline using Jump Flood Algorithm (JFA)
    • position='outside' - Stroke extends outward from shape
    • position='inside' - Stroke extends inward into shape
    • expand parameter - Control canvas expansion (consistent with drop_shadow and rotate)
    • Perfect antialiasing with sub-pixel precision
    • Works flawlessly with complex shapes (holes, islands, rounded corners)
    • Buffer reuse support for efficient batch processing
  • New Effect: Effect.vignette() - Apply vignette effect to darken or colorize image edges
    • radius parameter - Control where darkening begins (0.0-1.0+)
    • softness parameter - Control gradient falloff smoothness
    • color parameter - Customize vignette color for creative effects
    • In-place modification for memory efficiency
  • New Filter: Filter.sepia() - Apply warm sepia tone for vintage/antique look
    • intensity parameter - Control blend from original to full sepia (0.0-1.0)
    • In-place modification for memory efficiency
  • New Filter: Filter.invert() - Create photographic negative effect
    • Inverts all RGB colors while preserving alpha
    • In-place modification
  • New Filter: Filter.threshold() - Convert to pure black and white
    • value parameter - Luminance threshold (0.0-1.0)
    • Creates stark binary images
    • In-place modification
  • New Filter: Filter.solarize() - Psychedelic/retro effect
    • threshold parameter - Inverts only bright pixels (0.0-1.0)
    • Creates distinctive vintage poster look
    • In-place modification
  • New Filter: Filter.sobel() - Edge detection using Sobel operator
    • Returns black and white edge map
    • Useful for computer vision and artistic effects
    • Buffer reuse support
  • New Filter: Filter.emboss() - 3D relief/raised appearance effect
    • strength parameter - Control emboss intensity
    • Creates carved or pressed appearance
    • Buffer reuse support
  • New Adjust: Adjust.opacity() - Control image transparency
    • factor parameter - Multiply alpha channel (0.0-1.0+)
    • Perfect for fade effects, watermarks, and layering
    • In-place modification for memory efficiency
  • New Fill: Fill.checkerboard() - Generate checkerboard patterns
    • size parameter - Control square size
    • offset_x, offset_y - Shift pattern position
    • Perfect for backgrounds and transparency indicators
  • New Fill: Fill.grid() - Generate grid patterns
    • spacing and line_width parameters
    • Customizable line and background colors
    • Useful for rulers, guides, and graph paper effects
  • New Fill: Fill.stripes() - Generate striped patterns with anti-aliasing
    • angle parameter - Rotate stripes (0-360°)
    • spacing and width parameters
    • Smooth anti-aliased edges
  • New Fill: Fill.dots() - Generate polka dot patterns
    • spacing and radius parameters
    • softness parameter - Control edge softness (0.0 = hard, 1.0 = soft glow)
    • Perfect for textures and decorative backgrounds
  • New Fill: Fill.circle() - Fill with centered circle
    • Automatically fits to image size
    • softness parameter - Control edge gradient
    • Useful for vignettes and spotlight effects
  • New Fill: Fill.noise() - Generate white noise
    • seed parameter - Animate noise by changing seed
    • monochrome parameter - Grayscale or RGB noise
    • Perfect for film grain and texture effects
  • New Fill: Fill.perlin() - Generate Perlin noise (gradient noise)
    • scale parameter - Control feature size
    • octaves parameter - Add detail layers (1 = smooth, 6 = rocky)
    • persistence and lacunarity - Fine-tune noise characteristics
    • Perfect for clouds, terrain, organic textures
  • New Fill: Fill.ngon() - Generate regular polygons
    • sides parameter - Number of sides (3+ for triangle, pentagon, hexagon, etc.)
    • rotation parameter - Rotate polygon angle
    • softness parameter - Control edge softness (0.0 = hard AA, >0.0 = glow)
    • Perfect for geometric shapes and design elements

Changed

  • Renamed internal function colorize_shadow_f32 → colorize_alpha_mask_f32 for better clarity (internal API only, no breaking changes)

All new operations include:

  • Comprehensive examples with visual comparisons

Full Docs: https://offerrall.github.io/pyimagecuda/