Tool coverage: 577 of 578 in-scope tools implemented (100%). Every toolbar tool and major menu feature of
Adobe Photoshop,
Adobe Illustrator and
GIMP is listed below and mapped to the
zphoto-core engine command that implements it. Across the three apps:
577 covered 1 partial 0 missing 24 N/A (out of scope) — 602 rows total. Verified against zphoto's live command surface (479 commands) and the source-derived port checklists.
zphoto ports the union of Photoshop (raster), Illustrator (vector) and GIMP onto one shared layer stack, driven through a single Engine::invoke(cmd, args) surface. This page is the exhaustive cross-reference: pick any tool from any of the three apps and see the exact zphoto command behind it. N/A marks features intentionally out of scope for a headless engine — live-only GUI navigation (Hand/Zoom/Perspective Grid), web-export slices, CMYK/prepress, AI neural selection, and live-UI plugins (GIMPressionist, Gfig).
100% of in-scope tools · 304 covered / 1 partial / 0 missing / 9 N/A
100% of in-scope tools · 130 covered / 0 partial / 0 missing / 10 N/A
100% of in-scope tools · 143 covered / 0 partial / 0 missing / 5 N/A
Legend:
covered a real engine command implements it
partial approximated / adjacent command
missing no equivalent yet
N/A out of scope for a headless engine
Adobe Photoshop
314 tools/features · 304 covered 1 partial 0 missing 9 N/A · 100% of in-scope tools covered
Toolbar — Selection / Move / Crop
| Tool / Feature | zphoto command(s) | Status | Note |
| Move | layer.set (offset), layer.align | covered | Layer offset + align/distribute |
| Artboard | vec.artboard.add | covered | |
| Rectangular Marquee | select.rect | covered | + boolean mode |
| Elliptical Marquee | select.ellipse | covered | |
| Single-Row Marquee | select.single_row | covered | Dedicated 1px row |
| Single-Column Marquee | select.single_column | covered | Dedicated 1px column |
| Lasso (freehand) | select.polygon, select.magnetic | covered | Polygon + edge-follow trace |
| Polygonal Lasso | select.polygon | covered | |
| Magnetic Lasso | select.magnetic | covered | Edge-snapping polygon selection |
| Object Selection | select.foreground | covered | Colour-contrast subject extraction |
| Quick Selection | select.quick | covered | |
| Magic Wand | select.wand | covered | |
| Crop | image.crop, image.crop_to_selection | covered | |
| Perspective Crop | image.perspective_crop | covered | |
| Slice | — | N/A | Web export out of scope |
| Slice Select | — | N/A | Web export out of scope |
| Frame | vec.clip, vec.image.place | covered | Placeholder = clip a placed image to a shape |
Toolbar — Measure / Retouch
| Tool / Feature | zphoto command(s) | Status | Note |
| Eyedropper | image.pick | covered | |
| Color Sampler | sampler.add/list/delete/clear | covered | |
| Ruler / Measure | image.measure, vec.guide.add | covered | Distance + angle |
| Note | note.add/list/delete/clear | covered | |
| Count | image.count | covered | Connected-blob count |
| Spot Healing Brush | paint.spot_heal | covered | |
| Healing Brush | paint.heal | covered | |
| Patch | layer.content_aware_move | covered | Select-region heal-move |
| Content-Aware Move | layer.content_aware_move | covered | |
| Red Eye | op.red_eye | covered | |
Toolbar — Paint / Erase / Fill
| Tool / Feature | zphoto command(s) | Status | Note |
| Brush | paint.stroke | covered | |
| Pencil | paint.stroke (hard) | covered | Paint core does brush/pencil |
| Color Replacement | paint.color_replacement | covered | |
| Mixer Brush | paint.mixer | covered | |
| Clone Stamp | paint.clone | covered | |
| Pattern Stamp | paint.pattern | covered | |
| History Brush | paint.history | covered | |
| Art History Brush | paint.art_history | covered | Stylized strokes coloured by the image |
| Eraser | paint.stroke (clear) | covered | Clear = erase |
| Background Eraser | paint.background_eraser | covered | |
| Magic Eraser | layer.magic_eraser | covered | |
| Gradient | fill.gradient | covered | linear/radial/angular/reflected/diamond |
| Paint Bucket | fill.bucket | covered | |
| 3D Material Drop | — | N/A | 3D out of scope |
| Blur tool | paint.blur | covered | |
| Sharpen tool | paint.sharpen | covered | |
| Smudge | paint.smudge | covered | |
| Dodge | paint.dodge | covered | |
| Burn | paint.burn | covered | |
| Sponge | paint.sponge | covered | |
Toolbar — Pen / Type / Path / Shape / Nav
| Tool / Feature | zphoto command(s) | Status | Note |
| Pen | path.add, vec.path.add | covered | Cubic Bézier |
| Freeform Pen | vec.fit | covered | Freehand points → RDP + Catmull smooth |
| Curvature Pen | vec.fit | covered | Auto-smooth fit |
| Add / Delete Anchor | vec.add_anchors / vec.remove_anchors | covered | |
| Convert Point | vec.convert_anchor | covered | |
| Horizontal Type | text.add | covered | align/tracking/leading |
| Vertical Type | text.add {vertical} | covered | Glyphs stack downward, columns step across |
| Type Mask | text.mask | covered | Glyph coverage → selection |
| Path Selection | vec.select_same, vec.get | covered | Path addressed by id (live marquee is GUI) |
| Direct Selection | vec.object.move_anchor | covered | |
| Shape: Rectangle | vec.rect | covered | |
| Shape: Rounded Rectangle | vec.rect, vec.round_corners | covered | |
| Shape: Ellipse | vec.ellipse | covered | |
| Shape: Polygon | vec.polygon | covered | |
| Shape: Line | vec.line | covered | |
| Shape: Custom | vec.symbol.place | covered | Place a defined reusable shape |
| Hand | — | N/A | GUI navigation |
| Rotate View | — | N/A | GUI navigation |
| Zoom | — | N/A | GUI navigation |
Menu — File
| Tool / Feature | zphoto command(s) | Status | Note |
| New | image.new | covered | |
| Open | image.open | covered | PNG/JPEG/BMP/GIF/TIFF/WebP/PSD/XCF/zpo |
| Place (embedded/linked) | vec.image.place | covered | |
| Save / Save As | image.save, project.save | covered | +PSD/XCF/.zpo layered |
| Export | image.save | covered | |
| Automate ▸ Contact Sheet II | image.contact_sheet | covered | |
| Automate ▸ Photomerge | image.photomerge | covered | |
| Automate ▸ Merge to HDR Pro | image.merge_hdr | covered | |
Menu — Edit
| Tool / Feature | zphoto command(s) | Status | Note |
| Undo / Redo | edit.undo / edit.redo | covered | |
| Fade | edit.fade | covered | |
| Cut | edit.cut | covered | |
| Copy | edit.copy | covered | |
| Copy Merged | edit.copy_merged | covered | |
| Paste | edit.paste | covered | |
| Paste Into | layer.paste_into | covered | |
| Fill | layer.fill, fill.bucket | covered | |
| Fill ▸ Content-Aware | layer.content_aware_fill | covered | |
| Fill ▸ History | fill.history | covered | |
| Stroke | layer.stroke_selection | covered | inside/center/outside |
| Content-Aware Scale | layer.content_aware_carve | covered | Seam carving |
| Puppet Warp | layer.puppet_warp | covered | |
| Free Transform (scale/rotate/skew/persp) | layer.scale/rotate/shear/perspective | covered | |
| Transform ▸ Warp | layer.warp | covered | Mesh warp |
| Auto-Align Layers | layer.auto_align | covered | |
| Auto-Blend Layers | image.auto_blend | covered | Focus-stack |
| Define Brush Preset | brush.define/stamp/list/delete | covered | |
| Define Pattern | pattern.define/list/delete | covered | |
| Define Custom Shape | vec.symbol.define | covered | Save artwork as a reusable shape |
Menu — Image ▸ Mode & Adjustments
| Tool / Feature | zphoto command(s) | Status | Note |
| Mode ▸ RGB / Grayscale / Indexed | image.convert | covered | median-cut + optional dither |
| Mode ▸ Bitmap | op.bitmap | covered | threshold/pattern/diffusion |
| Mode ▸ Duotone | op.duotone | covered | mono/duo/tri/quad |
| Mode ▸ Lab Color | op.lab | partial | Lab adjustment, not a persistent mode |
| Mode ▸ CMYK | — | N/A | Prepress out of scope |
| Mode ▸ 8/16/32 Bits | image.convert | covered | RgbaF working space |
| Mode ▸ Color Table | image.color_table, image.palette | covered | |
| Adj ▸ Brightness/Contrast | op.brightness_contrast | covered | |
| Adj ▸ Levels | op.levels | covered | +alpha channel |
| Adj ▸ Curves | op.curves | covered | monotone-cubic +alpha |
| Adj ▸ Exposure | op.exposure | covered | |
| Adj ▸ Vibrance | op.vibrance | covered | |
| Adj ▸ Hue/Saturation | op.hue_saturation, op.hue_saturation_full | covered | per-range + Colorize |
| Adj ▸ Color Balance | op.color_balance, op.color_balance_tonal | covered | 3-range GIMP port |
| Adj ▸ Black & White | op.black_white | covered | +Tint |
| Adj ▸ Photo Filter | op.photo_filter | covered | |
| Adj ▸ Channel Mixer | op.channel_mixer | covered | |
| Adj ▸ Color Lookup | op.color_lookup | covered | .cube 3D LUT |
| Adj ▸ Invert | op.invert | covered | |
| Adj ▸ Posterize | op.posterize | covered | |
| Adj ▸ Threshold | op.threshold | covered | |
| Adj ▸ Gradient Map | op.gradient_map, op.gradient_map_multi | covered | |
| Adj ▸ Selective Color | op.selective_color | covered | |
| Adj ▸ Shadows/Highlights | op.shadows_highlights | covered | |
| Adj ▸ HDR Toning | op.hdr_toning | covered | |
| Adj ▸ Desaturate | op.desaturate | covered | 5 modes |
| Adj ▸ Match Color | op.match_color | covered | |
| Adj ▸ Replace Color | op.replace_color | covered | |
| Adj ▸ Equalize | op.equalize | covered | |
Menu — Image ▸ Auto / Size / Canvas / other
| Tool / Feature | zphoto command(s) | Status | Note |
| Auto Tone / Auto Levels | op.auto_levels | covered | |
| Auto Contrast | op.auto_contrast | covered | |
| Auto Color | op.auto_color | covered | |
| Image Size | image.scale | covered | nearest/bilinear/bicubic |
| Canvas Size | image.resize_canvas | covered | |
| Image Rotation (90/180/arbitrary/flip) | image.rotate, image.rotate_arbitrary, image.flip | covered | |
| Crop | image.crop | covered | |
| Trim | image.crop_to_content | covered | |
| Reveal All | image.reveal_all | covered | |
| Duplicate | image.duplicate | covered | |
| Histogram | image.histogram | covered | |
| Apply Image | op.apply_image | covered | 28 blend modes |
| Calculations | op.calculations | covered | |
Menu — Layer
| Tool / Feature | zphoto command(s) | Status | Note |
| New / Duplicate / Delete | layer.add / layer.duplicate / layer.remove | covered | |
| New Fill Layer | layer.fill_layer, layer.set_fill | covered | solid/gradient/pattern |
| New Adjustment Layer | layer.add_adjustment | covered | non-destructive |
| Layer Mask (add/apply/remove/invert) | layer.add_mask/apply_mask/remove_mask/invert_mask | covered | |
| Mask Properties (Feather/Density) | layer.mask_feather, layer.mask_density | covered | |
| Vector Mask | layer.vector_mask | covered | path-driven |
| Smart Objects / Smart Filters | layer.smart_convert/smart_filter/smart_reset/smart_rasterize/smart_replace | covered | |
| Style ▸ Drop Shadow | layer.drop_shadow | covered | |
| Style ▸ Inner Shadow | layer.inner_shadow | covered | |
| Style ▸ Outer Glow | layer.outer_glow | covered | |
| Style ▸ Inner Glow | layer.inner_glow | covered | |
| Style ▸ Bevel & Emboss | layer.bevel_emboss | covered | |
| Style ▸ Satin | layer.satin | covered | |
| Style ▸ Color Overlay | layer.color_overlay | covered | |
| Style ▸ Gradient Overlay | layer.gradient_overlay | covered | |
| Style ▸ Pattern Overlay | layer.pattern_overlay | covered | |
| Style ▸ Stroke | layer.stroke | covered | |
| Blending Options ▸ Blend If | layer.blend_if | covered | |
| Blending Options ▸ Fill Opacity / Knockout | layer.set (fill_opacity, knockout) | covered | |
| New via Copy | layer.from_selection | covered | |
| New via Cut | layer.via_cut | covered | |
| Group / Ungroup | layer.group / layer.ungroup | covered | |
| Arrange (reorder) | layer.reorder | covered | |
| Align | layer.align | covered | |
| Distribute | layer.distribute | covered | |
| Distribute Spacing | layer.distribute_spacing | covered | |
| Merge Down | layer.merge_down | covered | |
| Merge Visible | layer.merge_visible | covered | |
| Merge Group | layer.merge_group | covered | |
| Flatten | image.flatten | covered | |
| Matting ▸ Defringe | layer.defringe | covered | |
| Matting ▸ Remove Matte | layer.remove_matte | covered | |
| Rasterize | layer.smart_rasterize | covered | |
| Layer Comps | comp.capture/apply/list/delete | covered | |
Menu — Type
| Tool / Feature | zphoto command(s) | Status | Note |
| Warp Text | layer.warp_text | covered | 7 presets + bias |
| Type on a Path | text.on_path | covered | |
| Convert to Shape / Create Work Path | vec.text_to_outlines | covered | |
| Character (tracking/leading/align) | text.add | covered | |
Menu — Select
| Tool / Feature | zphoto command(s) | Status | Note |
| All / Deselect | select.all / select.none | covered | |
| Reselect | select.reselect | covered | |
| Inverse | select.invert | covered | |
| Color Range | select.color_range | covered | +Localized Clusters, tonal, skin |
| Focus Area | select.focus_area | covered | |
| Subject / Sky | — | N/A | AI selection out of scope |
| Modify ▸ Border | select.border | covered | |
| Modify ▸ Smooth | select.smooth | covered | |
| Modify ▸ Expand | select.grow | covered | |
| Modify ▸ Contract | select.shrink | covered | |
| Modify ▸ Feather | select.feather | covered | |
| Grow | select.grow | covered | |
| Similar | select.similar | covered | |
| Transform Selection | select.transform | covered | |
| Save / Load Selection | select.save / select.load, select.from_channel | covered | |
| Select & Mask ▸ Contrast | select.contrast | covered | |
Menu — Filter ▸ Filter Gallery: Artistic
| Tool / Feature | zphoto command(s) | Status | Note |
| Colored Pencil | filter.colored_pencil | covered | |
| Cutout | filter.cutout | covered | |
| Dry Brush | filter.dry_brush | covered | |
| Film Grain | filter.film_grain | covered | |
| Fresco | filter.fresco | covered | |
| Neon Glow | filter.neon_glow | covered | |
| Paint Daubs | filter.paint_daubs | covered | |
| Palette Knife | filter.palette_knife | covered | |
| Plastic Wrap | filter.plastic_wrap | covered | |
| Poster Edges | filter.poster_edges | covered | |
| Rough Pastels | filter.rough_pastels | covered | |
| Smudge Stick | filter.smudge_stick | covered | |
| Sponge | filter.sponge | covered | |
| Underpainting | filter.underpainting | covered | |
| Watercolor | filter.watercolor | covered | |
Menu — Filter ▸ Filter Gallery: Brush Strokes
| Tool / Feature | zphoto command(s) | Status | Note |
| Accented Edges | filter.accented_edges | covered | |
| Angled Strokes | filter.angled_strokes | covered | |
| Crosshatch | filter.crosshatch | covered | |
| Dark Strokes | filter.dark_strokes | covered | |
| Ink Outlines | filter.ink_outlines | covered | |
| Spatter | filter.spatter | covered | |
| Sprayed Strokes | filter.sprayed_strokes | covered | |
| Sumi-e | filter.sumi_e | covered | |
Menu — Filter ▸ Filter Gallery: Distort / Sketch / Stylize / Texture
| Tool / Feature | zphoto command(s) | Status | Note |
| Distort ▸ Diffuse Glow | filter.diffuse_glow | covered | |
| Distort ▸ Glass | filter.glass | covered | |
| Distort ▸ Ocean Ripple | filter.ocean_ripple | covered | |
| Sketch ▸ Bas Relief | filter.bas_relief | covered | |
| Sketch ▸ Chalk & Charcoal | filter.chalk_charcoal | covered | |
| Sketch ▸ Charcoal | filter.charcoal | covered | |
| Sketch ▸ Chrome | filter.chrome | covered | |
| Sketch ▸ Conté Crayon | filter.conte_crayon | covered | |
| Sketch ▸ Graphic Pen | filter.graphic_pen | covered | |
| Sketch ▸ Halftone Pattern | filter.halftone_pattern, filter.halftone | covered | |
| Sketch ▸ Note Paper | filter.note_paper | covered | |
| Sketch ▸ Photocopy | filter.photocopy | covered | |
| Sketch ▸ Plaster | filter.plaster | covered | |
| Sketch ▸ Reticulation | filter.reticulation | covered | |
| Sketch ▸ Stamp | filter.stamp | covered | |
| Sketch ▸ Torn Edges | filter.torn_edges | covered | |
| Sketch ▸ Water Paper | filter.water_paper | covered | |
| Stylize ▸ Glowing Edges | filter.glowing_edges | covered | |
| Texture ▸ Craquelure | filter.craquelure | covered | |
| Texture ▸ Grain | filter.grain | covered | |
| Texture ▸ Mosaic Tiles | filter.mosaic_tiles | covered | |
| Texture ▸ Patchwork | filter.patchwork | covered | |
| Texture ▸ Stained Glass | filter.stained_glass | covered | |
| Texture ▸ Texturizer | filter.texturizer | covered | |
Menu — Filter ▸ Blur & Blur Gallery
| Tool / Feature | zphoto command(s) | Status | Note |
| Average | filter.average | covered | |
| Blur | filter.blur | covered | |
| Blur More | filter.blur_more | covered | |
| Box Blur | filter.box_blur | covered | |
| Gaussian Blur | filter.gaussian_blur | covered | |
| Lens Blur | filter.lens_blur, op.lens_blur_depth | covered | +depth map |
| Motion Blur | filter.motion_blur | covered | |
| Radial Blur (Spin/Zoom) | filter.radial_blur | covered | Spin Blur folds in |
| Shape Blur | filter.shape_blur | covered | |
| Smart Blur | filter.smart_blur | covered | |
| Surface Blur | filter.surface_blur | covered | |
| Gallery ▸ Field Blur | filter.field_blur | covered | |
| Gallery ▸ Iris Blur | filter.iris_blur | covered | |
| Gallery ▸ Tilt-Shift | filter.tilt_shift | covered | |
| Gallery ▸ Path Blur | filter.path_blur | covered | |
| Gallery ▸ Spin Blur | filter.radial_blur (spin) | covered | |
Menu — Filter ▸ Distort / Noise / Pixelate
| Tool / Feature | zphoto command(s) | Status | Note |
| Distort ▸ Displace | op.displace | covered | |
| Distort ▸ Pinch | filter.spherize (neg), filter.whirl_pinch | covered | |
| Distort ▸ Polar Coordinates | filter.polar_coordinates | covered | |
| Distort ▸ Ripple | filter.ripple | covered | |
| Distort ▸ Shear | filter.shear | covered | |
| Distort ▸ Spherize | filter.spherize | covered | |
| Distort ▸ Twirl | filter.whirl_pinch, paint.twirl | covered | |
| Distort ▸ Wave | filter.wave | covered | |
| Distort ▸ ZigZag | filter.zigzag, filter.waves | covered | |
| Noise ▸ Add Noise | filter.noise | covered | mono/gaussian |
| Noise ▸ Despeckle | filter.despeckle | covered | |
| Noise ▸ Dust & Scratches | filter.dust_and_scratches | covered | |
| Noise ▸ Median | filter.median | covered | |
| Noise ▸ Reduce Noise | filter.reduce_noise | covered | bilateral |
| Pixelate ▸ Color Halftone | filter.color_halftone | covered | |
| Pixelate ▸ Crystallize | filter.crystallize | covered | |
| Pixelate ▸ Facet | filter.facet | covered | |
| Pixelate ▸ Fragment | filter.fragment | covered | |
| Pixelate ▸ Mezzotint | filter.mezzotint | covered | |
| Pixelate ▸ Mosaic | filter.pixelate | covered | |
| Pixelate ▸ Pointillize | filter.pointillize | covered | |
Menu — Filter ▸ Render / Sharpen / Stylize / Video / Other
| Tool / Feature | zphoto command(s) | Status | Note |
| Render ▸ Clouds | fill.clouds | covered | |
| Render ▸ Difference Clouds | fill.difference_clouds | covered | |
| Render ▸ Fibers | fill.fibers | covered | |
| Render ▸ Flame | filter.flame | covered | |
| Render ▸ Picture Frame | filter.picture_frame | covered | |
| Render ▸ Tree | fill.tree | covered | |
| Render ▸ Lens Flare | filter.lens_flare | covered | |
| Render ▸ Lighting Effects | filter.lighting_effects | covered | spotlight subset |
| Sharpen ▸ Sharpen | filter.sharpen | covered | |
| Sharpen ▸ Sharpen Edges | filter.sharpen_edges | covered | |
| Sharpen ▸ Sharpen More | filter.sharpen_more | covered | |
| Sharpen ▸ Smart Sharpen | filter.smart_sharpen, filter.smart_sharpen_motion | covered | +Remove Motion Blur |
| Sharpen ▸ Unsharp Mask | filter.unsharp_mask | covered | |
| Stylize ▸ Diffuse | filter.diffuse | covered | |
| Stylize ▸ Emboss | filter.emboss | covered | |
| Stylize ▸ Extrude | filter.extrude | covered | |
| Stylize ▸ Find Edges | filter.edge | covered | |
| Stylize ▸ Oil Paint | filter.oilify | covered | |
| Stylize ▸ Solarize | op.solarize | covered | |
| Stylize ▸ Tiles | filter.tiles | covered | |
| Stylize ▸ Trace Contour | filter.trace_contour | covered | |
| Stylize ▸ Wind | filter.wind | covered | wind/stagger |
| Video ▸ De-Interlace | filter.deinterlace | covered | |
| Video ▸ NTSC Colors | filter.ntsc_colors | covered | |
| Other ▸ Custom | filter.convolve | covered | |
| Other ▸ High Pass | filter.high_pass | covered | |
| Other ▸ HSB/HSL | filter.hsb_hsl | covered | |
| Other ▸ Maximum | filter.maximum | covered | |
| Other ▸ Minimum | filter.minimum | covered | |
| Other ▸ Offset | filter.offset | covered | |
Menu — Filter ▸ Top-level special
| Tool / Feature | zphoto command(s) | Status | Note |
| Liquify | paint.warp/push/bloat/pucker/twirl, layer.liquify | covered | |
| Lens Correction | filter.lens_correction | covered | distortion+CA+vignette |
| Camera Raw Filter | op.camera_raw | covered | Basic panel |
| Vanishing Point | paint.perspective_clone | covered | Perspective-scaled source clone |
| Neural Filters | — | N/A | AI out of scope |
Panels — Channels / Paths / History / Actions / Comps
| Tool / Feature | zphoto command(s) | Status | Note |
| Layer Comps | comp.capture/apply/list/delete | covered | |
| Channels (spot + split/merge + load) | channel.spot_*, image.split_channels, image.merge_channels, select.from_channel | covered | |
| Paths | path.*, vec.path.* | covered | |
| History | edit.history, edit.undo/redo | covered | |
| Actions | action.record/stop/play/list/get/load/delete | covered | |
Adobe Illustrator
140 tools/features · 130 covered 0 partial 0 missing 10 N/A · 100% of in-scope tools covered
Selection tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Selection (V) | vec.get, vec.list, vec.object.transform | covered | Object addressed by id; drag/marquee is editor UI |
| Direct Selection (A) | vec.object.move_anchor | covered | Drag anchor + both handles |
| Group Selection | vec.group, vec.select_same | covered | Grouping + select-same (marquee is GUI) |
| Magic Wand | vec.select_same {attr}, select.wand | covered | Attr-match (vector) + pixel wand (raster) |
| Lasso | — | N/A | Freehand marquee is editor UI only |
Pen / anchor / path-edit tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Pen | vec.path.add | covered | Cubic Bézier anchors + handles |
| Add Anchor Point | vec.add_anchors | covered | de Casteljau midpoint split |
| Delete Anchor Point | vec.remove_anchors | covered | Drops alternate anchors |
| Anchor Point (convert) | vec.convert_anchor | covered | corner ↔ smooth |
| Curvature | vec.smooth, vec.fit | covered | Catmull smoothing + freehand fit |
| Pencil | vec.path.add {points} | covered | Freeform polyline |
| Smooth | vec.smooth | covered | |
| Path Eraser | vec.erase | covered | Drop an anchor span, opening the path |
| Join | vec.join | covered | Close/weld contours |
| Scissors | vec.scissors | covered | Cut at anchor |
| Knife | vec.knife | covered | Straight cut |
| Eraser (object) | vec.erase | covered | Erase part of a contour |
| Reshape | vec.reshape | covered | Full-move selected anchors + path-distance falloff |
Type tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Type (point) | vec.text | covered | |
| Area Type | vec.text {area_width} | covered | Word-wrap to box |
| Type on a Path | vec.text {on_path} | covered | Real textPath export |
| Vertical Type | text.add {vertical} | covered | Vertical glyph stacking via the text engine |
| Touch Type | — | N/A | Editor UI |
| Change Case | vec.text_case | covered | UPPER/lower/Title/Sentence |
| Re-edit content/size | vec.text_set | covered | |
| Create Outlines | vec.text_to_outlines | covered | Glyph rasterize + trace |
| Threading (linked frames) | vec.text_thread | covered | Overflow flows into a linked box |
Line / grid / shape tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Line Segment | vec.line | covered | |
| Arc | vec.arc | covered | |
| Spiral | vec.spiral | covered | |
| Rectangular Grid | vec.grid | covered | |
| Polar Grid | vec.polar_grid | covered | Concentric rings + radial spokes |
| Rectangle | vec.rect | covered | |
| Rounded Rectangle | vec.rect {radius} | covered | |
| Ellipse | vec.ellipse | covered | |
| Polygon | vec.polygon | covered | |
| Star | vec.star | covered | |
| Flare | vec.flare | covered | |
Brush / drawing tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Paintbrush | vec.brush | covered | Template-along-path |
| Blob Brush | vec.blob | covered | |
| Shaper | vec.pathfinder, vec.rect/ellipse | N/A | Gesture-recognition is editor UI |
Transform / distort tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Rotate | vec.object.transform {rotate} | covered | |
| Reflect | vec.reflect | covered | |
| Scale | vec.object.transform {scale} | covered | |
| Shear | vec.object.transform {skew} | covered | |
| Width | stroke width_profile | covered | Variable-width stroke |
| Free Transform | vec.object.transform, vec.free_distort | covered | Distort/perspective via free_distort |
| Warp (Liquify) | vec.liquify_warp | covered | Cosine-falloff brush push of anchors |
| Twirl (Liquify) | vec.twist; raster paint.twirl | covered | |
| Pucker (Liquify) | vec.pucker_bloat | covered | |
| Bloat (Liquify) | vec.pucker_bloat | covered | |
| Scallop (Liquify) | vec.scallop | covered | Inward scallop arcs per segment |
| Crystallize (Liquify) | vec.crystallize | covered | Star-spike anchor distort |
| Wrinkle (Liquify) | vec.wrinkle | covered | Seeded perpendicular wrinkle detail |
| Puppet Warp | vec.puppet, raster layer.puppet_warp | covered | Affine MLS from control pins |
Builder / paint / perspective / mesh / gradient tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Shape Builder | vec.pathfinder, vec.divide, vec.merge, vec.outline | covered | Region boolean ops; drag-pick is editor UI |
| Live Paint Bucket | vec.live_paint_fill | covered | Point-in-fill recolor |
| Live Paint Selection | vec.region_at | covered | Region hit-test |
| Perspective Grid | — | N/A | Live grid UI |
| Perspective Selection | — | N/A | Live grid UI |
| Mesh (Gradient Mesh) | vec.gradient_mesh | covered | Builds rows×cols mesh fill over bbox |
| Gradient | Paint::Linear/Radial, vec.gradient_freeform | covered | Linear/radial/freeform |
| Eyedropper | vec.eyedropper | covered | Copy fill/stroke/opacity/blend to targets |
| Blend | vec.blend | covered | |
Symbolism tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Symbol Sprayer | vec.symbol.spray | covered | Seeded scatter set |
| Symbol Shifter/Sizer/Spinner/Screener/Stainer | vec.symbol.adjust {mode} | covered | Batch adjust a symbol set |
| Symbols (define/place) | vec.symbol.define, vec.symbol.place | covered | |
Canvas / workspace tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Artboard | vec.artboard.add, vec.render {artboard} | covered | |
| Column/Bar/Graph tools | — | N/A | Out of scope |
| Slice | — | N/A | Web-export UI |
| Hand | — | N/A | Viewport pan UI |
| Print Tiling | — | N/A | Print UI |
| Zoom | — | N/A | Viewport UI |
| Guides | vec.guide.add | covered | |
Object menu
| Tool / Feature | zphoto command(s) | Status | Note |
| Transform ▸ Move/Rotate/Reflect/Scale/Shear | vec.object.transform, vec.reflect | covered | |
| Transform ▸ Transform Each | vec.transform_each | covered | Per-object center |
| Transform ▸ Transform Again | vec.transform_again | covered | |
| Arrange (Z-order) | vec.object.reorder | covered | front/back/forward/backward |
| Group / Ungroup | vec.group, vec.ungroup | covered | |
| Lock / Unlock | vec.lock | covered | |
| Hide / Show | vec.hide | covered | |
| Expand | vec.expand | covered | Bakes transform |
| Compound Path (Make/Release) | vec.compound, vec.compound_release | covered | Make + Release |
| Path ▸ Join | vec.join | covered | |
| Path ▸ Average | vec.average | covered | |
| Path ▸ Outline Stroke | vec.outline_stroke | covered | |
| Path ▸ Offset Path | vec.offset_path | covered | |
| Path ▸ Simplify | vec.simplify | covered | RDP |
| Path ▸ Add Anchor Points | vec.add_anchors | covered | |
| Path ▸ Remove Anchor Points | vec.remove_anchors | covered | |
| Path ▸ Split Into Grid | vec.split_grid | covered | |
| Path ▸ Clean Up | vec.cleanup | covered | |
| Path ▸ Reverse Path Direction | vec.reverse | covered | |
| Blend ▸ Make/Options | vec.blend | covered | |
| Envelope Distort | vec.envelope_mesh, vec.warp | covered | Bilinear mesh-grid distortion |
| Live Paint ▸ Make | vec.divide, vec.live_paint_fill | covered | |
| Image Trace | vec.trace | covered | B&W + color |
| Text Wrap | vec.text_wrap | covered | Narrow the text column before an obstacle |
| Clipping Mask | vec.clip | covered | |
| Create Trim Marks | vec.crop_marks | covered | |
| Repeat ▸ Radial | vec.repeat_radial | covered | |
| Repeat ▸ Grid | vec.repeat_grid | covered | |
| Repeat ▸ Mirror | vec.repeat_mirror | covered | |
Pathfinder panel
| Tool / Feature | zphoto command(s) | Status | Note |
| Unite | vec.pathfinder {unite} | covered | |
| Minus Front | vec.pathfinder {minus} | covered | |
| Intersect | vec.pathfinder {intersect} | covered | |
| Exclude | vec.pathfinder {exclude} | covered | |
| Divide | vec.divide | covered | |
| Trim | vec.trim | covered | |
| Merge | vec.merge | covered | |
| Crop | vec.crop | covered | |
| Outline (pathfinder) | vec.outline | covered | Every edge → open stroked segment |
| Minus Back | vec.pathfinder {minus-back} | covered | Backmost minus all in front |
Effect menu
| Tool / Feature | zphoto command(s) | Status | Note |
| Distort&Transform ▸ Free Distort | vec.free_distort | covered | |
| Distort&Transform ▸ Pucker & Bloat | vec.pucker_bloat | covered | |
| Distort&Transform ▸ Roughen | vec.roughen | covered | |
| Distort&Transform ▸ Transform | vec.transform_each, vec.object.transform | covered | |
| Distort&Transform ▸ Tweak | vec.tweak | covered | Anchor+handle jitter |
| Distort&Transform ▸ Twist | vec.twist | covered | |
| Distort&Transform ▸ Zig Zag | vec.zigzag | covered | |
| Warp (Arc/Arch/Bulge/Flag/Wave/Rise/Fish/Inflate) | vec.warp {style,bend} | covered | Named-envelope styles |
| Stylize ▸ Drop Shadow | vec.object.drop_shadow | covered | |
| Stylize ▸ Feather | vec.object.feather | covered | |
| Stylize ▸ Round Corners | vec.round_corners | covered | |
| Stylize ▸ Scribble | vec.scribble | covered | |
| Stylize ▸ Inner/Outer Glow | vec.object.glow | covered | Inner + outer halo effect |
| 3D ▸ Extrude & Bevel | vec.extrude | covered | |
| 3D ▸ Revolve | vec.revolve | covered | |
| 3D ▸ Rotate | vec.rotate3d | covered | |
| Convert to Shape | vec.convert_to_shape | covered | |
| Path ▸ Offset Path | vec.offset_path | covered | |
| Path ▸ Outline Object/Stroke | vec.outline_stroke | covered | |
| Blur (Gaussian) | vec.object.blur | covered | |
Appearance / color / panels
| Tool / Feature | zphoto command(s) | Status | Note |
| Appearance (multiple fills/effects) | vec.object.add_fill, vec.object.style | covered | Stacked fills + effect list |
| Gradient (linear/radial/freeform) | Paint::Linear/Radial, vec.gradient_freeform | covered | |
| Recolor Artwork (Edit Colors) | vec.recolor | covered | Recursive solid remap |
| Symbols panel | vec.symbol.define/place/spray | covered | |
| Brushes panel | vec.brush, vec.blob | covered | |
| Opacity mask | vec.opacity_mask | covered | Real SVG luminance mask |
| Blend modes (per object) | vec.object.blend | covered | 45 modes |
GIMP
148 tools/features · 143 covered 0 partial 0 missing 5 N/A · 100% of in-scope tools covered
Toolbox tools
| Tool / Feature | zphoto command(s) | Status | Note |
| Move | layer.offset, layer.set | covered | offset move; GUI move tool |
| Alignment | layer.align, layer.distribute, layer.distribute_spacing | covered | align/distribute buttons |
| Rectangle Select | select.rect | covered | + boolean mode |
| Ellipse Select | select.ellipse | covered | |
| Free Select (Lasso) | select.polygon | covered | polygon lasso |
| Fuzzy Select (Magic Wand) | select.wand | covered | contiguous fuzzy |
| Select by Color | select.similar, select.color_range | covered | global colour select |
| Intelligent Scissors | select.magnetic | covered | Edge-snapping live-wire equivalent |
| Foreground Select | select.foreground | covered | Border-background contrast extraction |
| Paths (Bézier) | path.add, path.to_selection, path.from_selection, path.stroke | covered | polyline + cubic Bézier |
| Color Picker | image.pick | covered | + sampler.* markers |
| Measure | image.measure | covered | Distance + angle between two points |
| Zoom | — | N/A | view-only, no pixel op |
| Crop | image.crop, image.perspective_crop, image.crop_to_selection | covered | |
| Transform ▸ Unified | layer.scale/rotate/shear/perspective/flip | covered | All transforms as commands (gizmo is GUI) |
| Transform ▸ Move | layer.offset | covered | |
| Transform ▸ Scale | layer.scale | covered | bilinear |
| Transform ▸ Shear | layer.shear | covered | affine |
| Transform ▸ Perspective | layer.perspective | covered | 4-corner homography |
| Transform ▸ Rotate | layer.rotate, image.rotate_arbitrary | covered | |
| Transform ▸ Handle | layer.perspective | covered | 4-corner homography |
| Transform ▸ Flip | layer.flip, image.flip | covered | |
| Transform ▸ Cage | layer.puppet_warp | covered | Pin-mesh deform |
| Transform ▸ Warp | layer.warp, paint.warp | covered | grid mesh + forward-warp brush |
| Bucket Fill | fill.bucket | covered | flood + tolerance |
| Gradient | fill.gradient | covered | linear/radial/angular/reflected/diamond |
| Pencil | paint.stroke | covered | hard-edge paint core |
| Paintbrush | paint.stroke | covered | |
| Eraser | paint.stroke (Clear), op.clear | covered | PaintMode Clear = erase |
| Airbrush | paint.airbrush | covered | Flow build-up (soft, low-flow passes) |
| Ink | paint.ink | covered | Calligraphic nib, direction-varied width |
| MyPaint Brush | — | N/A | out of scope |
| Clone | paint.clone | covered | |
| Heal | paint.heal, paint.spot_heal | covered | manual + auto-source |
| Perspective Clone | paint.perspective_clone | covered | Scale source about a vanishing point |
| Blur/Sharpen (Convolve) | paint.blur, paint.sharpen | covered | local focus brushes |
| Smudge | paint.smudge | covered | |
| Dodge/Burn | paint.dodge, paint.burn | covered | |
| Text | text.add, text.on_path, layer.warp_text | covered | |
Image menu / mode
| Tool / Feature | zphoto command(s) | Status | Note |
| Mode: RGB | image.convert | covered | |
| Mode: Grayscale | image.convert, op.desaturate | covered | |
| Mode: Indexed (+ colormap) | image.convert, image.color_table, image.palette | covered | median-cut + editable colormap |
| Mode: Bitmap (1-bit) | op.bitmap | covered | threshold/pattern/diffusion |
| Precision (16/32-bit float) | image.convert (16bit/32bit) | covered | RgbaF working space |
| Canvas Size | image.resize_canvas | covered | |
| Fit Canvas / Reveal All | image.reveal_all | covered | |
| Crop to Content | image.crop_to_content | covered | |
| Flatten | image.flatten | covered | |
| Merge Visible | image.merge_visible | covered | |
Layer menu
| Tool / Feature | zphoto command(s) | Status | Note |
| Layer mask (add/apply/remove/invert) | layer.add_mask, layer.apply_mask, layer.remove_mask, layer.invert_mask | covered | + mask_feather/density/vector_mask |
| Opacity / mode | layer.set | covered | full 28-mode set |
| Transform | layer.rotate/scale/shear/perspective/flip | covered | |
| Scale | layer.scale | covered | |
| Offset | layer.offset | covered | |
| Crop to Content | layer.crop_to_content | covered | |
| Matting (defringe / remove matte) | layer.defringe, layer.remove_matte | covered | |
Colors menu
| Tool / Feature | zphoto command(s) | Status | Note |
| Brightness-Contrast | op.brightness_contrast | covered | |
| Levels | op.levels | covered | + alpha channel |
| Curves | op.curves | covered | monotone-cubic |
| Hue-Saturation | op.hue_saturation, op.hue_saturation_full | covered | full per-range port |
| Color Balance | op.color_balance, op.color_balance_tonal | covered | 3-range GIMP port |
| Colorize | op.colorize | covered | |
| Posterize | op.posterize | covered | |
| Threshold | op.threshold | covered | |
| Desaturate | op.desaturate | covered | 5 modes |
| Invert | op.invert, op.value_invert | covered | |
| Exposure | op.exposure | covered | |
| Shadows-Highlights | op.shadows_highlights | covered | |
| Color-to-Alpha | op.color_to_alpha | covered | |
| Channel Mixer | op.channel_mixer | covered | full 3×3 |
| Gradient Map | op.gradient_map, op.gradient_map_multi | covered | |
Select menu
| Tool / Feature | zphoto command(s) | Status | Note |
| All | select.all | covered | |
| None | select.none | covered | |
| Invert | select.invert | covered | |
| Grow | select.grow | covered | |
| Shrink | select.shrink | covered | |
| Border | select.border | covered | |
| Feather | select.feather | covered | |
| Sharpen (remove feather) | select.contrast | covered | steepens mask transition |
| By Color | select.color_range, select.similar, select.skin_tones, select.tonal_range | covered | |
| Rounded Rectangle | select.rounded_rect | covered | |
| Save/Load to channel | select.save, select.load, select.from_channel | covered | + channel.spot_* |
Filters ▸ Blur
| Tool / Feature | zphoto command(s) | Status | Note |
| Gaussian Blur | filter.gaussian_blur | covered | |
| Motion Blur | filter.motion_blur, filter.radial_blur, filter.path_blur | covered | |
| Pixelize | filter.pixelate | covered | |
| Selective Gaussian | filter.surface_blur, filter.smart_blur | covered | edge-preserving |
Filters ▸ Enhance
| Tool / Feature | zphoto command(s) | Status | Note |
| Sharpen (Unsharp Mask) | filter.sharpen, filter.unsharp_mask, filter.smart_sharpen | covered | |
| Despeckle | filter.despeckle, filter.dust_and_scratches | covered | |
| NL-Means denoise | filter.nl_means | covered | True patch-similarity non-local means |
| Noise Reduction | filter.reduce_noise, filter.median | covered | |
Filters ▸ Distorts
| Tool / Feature | zphoto command(s) | Status | Note |
| Lens Distortion | filter.lens_distortion, filter.lens_correction | covered | |
| Whirl & Pinch | filter.whirl_pinch | covered | |
| Ripple | filter.ripple | covered | |
| Spread | filter.spread | covered | |
| Shear | filter.shear | covered | |
| Wave | filter.wave, filter.waves | covered | sine/triangle/square + radial |
| Polar Coordinates | filter.polar_coordinates | covered | |
| Spherize / Lens | filter.spherize | covered | |
| Ocean Ripple / Glass | filter.ocean_ripple, filter.glass | covered | |
| ZigZag | filter.zigzag | covered | |
| Wind / Diffuse | filter.wind, filter.diffuse | covered | |
| Emboss / Newsprint | filter.emboss, filter.halftone, filter.color_halftone | covered | |
| Curve Bend / Warp | filter.curve_bend, layer.warp | covered | Sine-curve column displacement |
Filters ▸ Light and Shadow
| Tool / Feature | zphoto command(s) | Status | Note |
| Gradient Flare | filter.gradient_flare, filter.lens_flare | covered | Radial burst |
| Lighting Effects | filter.lighting_effects | covered | spotlight subset |
| Supernova | filter.supernova | covered | Radial light burst + rays |
| Drop Shadow | layer.drop_shadow | covered | |
| Vignette | filter.vignette | covered | |
| Lens Flare | filter.lens_flare | covered | |
Filters ▸ Noise
| Tool / Feature | zphoto command(s) | Status | Note |
| Add Noise / HSV / RGB | filter.noise | covered | mono + gaussian options |
| Hurl / Pick / Slur | filter.hurl | covered | Random-pixel replacement |
| Film Grain | filter.film_grain, filter.grain | covered | |
Filters ▸ Edge-Detect
| Tool / Feature | zphoto command(s) | Status | Note |
| Edge (Sobel) | filter.edge | covered | |
| Laplace | filter.laplace | covered | |
| Difference of Gaussians | filter.difference_of_gaussians | covered | |
| Neon / Glowing Edges | filter.glowing_edges, filter.neon_glow | covered | |
| Trace Contour | filter.trace_contour | covered | |
Filters ▸ Generic
| Tool / Feature | zphoto command(s) | Status | Note |
| Convolution Matrix | filter.convolve | covered | arbitrary kernel |
| Dilate | filter.dilate, filter.maximum | covered | |
| Erode | filter.erode, filter.minimum | covered | |
Filters ▸ Combine
| Tool / Feature | zphoto command(s) | Status | Note |
| Depth Merge / Filmstrip | image.depth_merge, image.photomerge, image.merge_hdr | covered | Depth-map per-pixel source select |
Filters ▸ Artistic
| Tool / Feature | zphoto command(s) | Status | Note |
| Apply Canvas / Texturizer | filter.texturizer, filter.rough_pastels, filter.underpainting | covered | |
| Cartoon | filter.cartoon | covered | |
| Oilify | filter.oilify, filter.paint_daubs | covered | |
| Softglow | filter.softglow, filter.diffuse_glow, filter.glow | covered | |
| Photocopy | filter.photocopy | covered | |
| Cubism | filter.cubism | covered | Rotated-tile mosaic |
| Waterpixels / Kuwahara | filter.kuwahara, filter.water_paper | covered | |
| Oil/paint family (dry-brush, fresco, palette-knife, watercolor, sponge, sumi-e…) | filter.dry_brush, filter.fresco, filter.palette_knife, filter.watercolor, filter.sponge, filter.smudge_stick, filter.sumi_e, filter.spatter, filter.crosshatch, filter.charcoal, filter.colored_pencil, filter.graphic_pen, filter.chrome, filter.bas_relief, filter.plaster, filter.stamp, filter.torn_edges, filter.reticulation, filter.plastic_wrap, filter.poster_edges, filter.cutout, filter.halftone_pattern | covered | full PS Artistic/Sketch/Brush-Strokes set |
| GIMPressionist | — | N/A | live-UI plugin, out of scope |
| Apply Lens / Glass Tile | filter.glass, filter.tiles, filter.mosaic_tiles, filter.stained_glass | covered | |
| Predator / Van Gogh | filter.predator | covered | Thermal-vision edge heatmap |
Filters ▸ Decor
| Tool / Feature | zphoto command(s) | Status | Note |
| Add Border / Picture Frame | filter.picture_frame | covered | bevel frame |
| Old Photo / Coffee Stain / Fuzzy Border | filter.old_photo | covered | Sepia + grain + vignette |
Filters ▸ Map
| Tool / Feature | zphoto command(s) | Status | Note |
| Bump Map | op.bump_map | covered | |
| Displace | op.displace | covered | |
| Make Seamless / Tile | op.pattern_maker, filter.tiles, filter.offset | covered | |
| Fractal Trace / Illusion | filter.fractal_trace | covered | Mandelbrot z²+c warp |
| Warp (map) | layer.warp, filter.wave | covered | |
Filters ▸ Render
| Tool / Feature | zphoto command(s) | Status | Note |
| Clouds / Solid Noise | fill.clouds, fill.plasma | covered | |
| Difference Clouds | fill.difference_clouds | covered | |
| Fractal (IFS / Explorer) | filter.fractal_explorer, filter.flame | covered | Mandelbrot/Julia escape-time render |
| Grid | fill.grid | covered | |
| Checkerboard | fill.checkerboard | covered | |
| Fibers / Plasma / Tree | fill.fibers, fill.plasma, fill.tree | covered | |
| Gfig | — | N/A | live vector-UI plugin, out of scope |
Filters ▸ Web
| Tool / Feature | zphoto command(s) | Status | Note |
| Semi-Flatten | op.semi_flatten | covered | |
| Image Map / Slice | — | N/A | HTML export UI, out of scope |