Home / Features

Everything Photo Editor Pro can do.

A pixel document with a layer stack, an 8-bit selection mask and a colour mode — and the tools, menus and palettes that go with it. This page describes what is built today; the app is out as a 26.0 beta, and the last section is an honest list of what is still missing.

Workspace

The document, the menus and the palettes

A document is a picture: a fixed number of pixels across and down, at a resolution, in one colour mode, with a stack of layers. You set the size when you create it or you inherit it from the file you opened, and it changes only through Image Size, Canvas Size, Crop or Rotate. The canvas draws exactly that rectangle, with a checkerboard where the picture is transparent; layers may hang over the edge and are clipped by it.

The selection is an 8-bit mask rather than a shape, so a feathered edge really is a partial-density edge, and every tool — painting, filters, adjustments, fills — honours it at that density.

Menus

File, Edit, Mode, Image, Layer, Select and Filter with the keyboard chords your hands already know, plus View and Window. The vector menus of the editor this app grew out of are still in the bar and validate to disabled while a picture is in front.

Palettes

ToolsThe raster toolbox in two columns with flyouts, the foreground and background wells, X to swap and D for the defaults.
Options barA row that changes with the tool — marquee style and feather, wand tolerance, brush and mode and opacity, crop size and resolution — and remembers each tool's own settings.
LayersThumbnails, mask thumbnails, the mask link, groups you can collapse, drag reordering, rename, eye and lock, blend and opacity in the header, footer buttons and a menu that mirrors the Layer menu.
ChannelsThe composite, one row per colour channel, alpha channels, and the active layer's mask; eyes per channel, thumbnails, and buttons for selection to alpha and back.
HistoryThe opening snapshot plus every committed step, with a cursor you can click to jump back and forth.
Histogram256 bins per channel with mean, standard deviation, median and pixel count, refreshed as the picture changes.
Info · NavigatorColour readouts under the pointer in the document's own mode, cursor position, marquee size; thumbnail with the view rectangle and a zoom slider.
Brushes · Colour · Swatches · PathsBrush presets and their size, hardness, spacing, angle and roundness; colour sliders per mode with a ramp; the swatch library; and the saved paths of the document.

On the canvas

Rulers with guides you drag out and that stay where you put them, real-time zoom, and Quick Mask on Q — the rubylith over the composite, painted with any tool and turned back into a selection when you leave it.

Dialogs

Every pixel dialog previews live on the canvas. Cancel leaves the pixels exactly as they were and puts nothing in History; OK commits exactly one History step named after the dialog. Holding ⌥ turns Cancel into Reset. Numeric fields take units and expressions.

Layers

Layers and masks

Pixel layers, a Background, groups, and every operation as one undo step: new, duplicate (into this document or another open one), delete, reorder, group and ungroup, Layer Via Copy and Layer Via Cut, Merge Down, Merge Visible and Flatten Image. Dragging down a column of eyes turns the whole column off, the way it should.

Masks

Layer masks from Reveal All, Hide All, Reveal Selection or Hide Selection; delete, apply or disable them; unlink a mask to move it independently of its pixels. Paths give vector masks. Painting, filters and adjustments all work on a targeted mask, so a mask is edited with the same tools as the picture.

Blending

Sixteen blend modes in the picker, with opacity, in a Blending Options dialog that previews live and reverts on Cancel. The compositor implements the wider Photoshop set as well, so a layer that arrives from a PSD or a layered TIFF carrying Linear Burn, Vivid Light, Hard Mix, Subtract, Divide or one of the Darker and Lighter Color modes composites correctly and keeps its mode.

Layer effects

Drop Shadow, Outer Glow and Stroke as non-destructive per-layer effects: they are derived from the layer's own alpha at draw time, shaped by its mask, editable afterwards, and saved in the native TIFF.

Type layers

The Type tool makes a real type layer: rasterised into the composite, editable underneath, with the Character and Paragraph palettes driving the text and the layer's transform surviving the round trip.

Select

Pixel selections

Rectangular and elliptical marquees, freehand and polygonal lasso, and a magic wand with tolerance, contiguous and sample-merged options. Shift adds, ⌥ subtracts, Shift-⌥ intersects; the modifiers work during the drag too, for a square, a circle or a marquee drawn from its centre.

The Select menu carries All, None, Inverse, Grow, Similar, Fringe, Feather, Defringe and Hide Edges. A selection can be stored as an alpha channel and loaded back from one, and Quick Mask lets you paint the selection instead of drawing it.

With the Move tool the selected pixels tear away and drag, and the pen's paths convert to selections and back.

Paint

Painting tools

Pencil, Paintbrush, Airbrush, Eraser, Rubber Stamp (clone and pattern), Smudge, Blur and Sharpen all draw through one shared brush engine in the portable core. Brush tips are built in and generated on demand up to 300 pixels.

Also on the toolbox: Gradient, Paint Bucket, Line with arrowheads, Crop, Eyedropper, Hand and Zoom, plus the Move tool with its transform handles for scaling and rotating a layer.

Every stroke is one History step. Strokes respect the selection mask at its own density, respect a locked layer, and paint into a layer mask, an alpha channel or Quick Mask when one of those is the target. Fill chords on the delete key fill with the foreground or background colour.

Adjust

Adjustments

Image ▸ Adjust has Levels, Curves, Brightness/Contrast, Colour Balance and Hue/Saturation. Image ▸ Map has Invert, Equalize, Threshold, Posterize and Arbitrary Map.

They preview on the GPU while you drag and commit through the colour kernel itself, so what you saw is what lands. On a partial selection the result is computed per pixel and blended at the selection's own density instead of being applied to a rectangle and masked afterwards.

The Curves dialog is drawn as a shared Skia component — gradient axes, the grid, the band, point editing with its own undo inside the dialog — and the Histogram palette follows the picture as you work.

Non-destructive

Adjustment layers

An adjustment layer applies its correction to everything below it, honouring its own mask and opacity, and stays editable for as long as the document lives. Levels, Curves, Hue/Saturation, Brightness/Contrast, Colour Balance and Selective Colour are all available as control layers, and each kind draws its own glyph in the Layers palette so the stack is readable at a glance.

Two more go beyond the classic set: a colour-wheels grading layer with lift, gamma, gain and offset wheels, and a Colour Lookup layer that loads a .cube or .3dl LUT and applies it over the composite below. View ▸ LUT Preview does the same thing for the display only, without touching the document.

Adjustment layers stay live in the native TIFF. Exporting to PSD bakes them into the picture.

Filter

Twenty-one filters

The classic filter set, each with the parameters and ranges it is supposed to have:

BlurBlur · Blur More · Gaussian Blur (radius 0.1–250 px) · Motion Blur (angle and distance)
SharpenSharpen · Sharpen More · Sharpen Edges · Unsharp Mask (amount, radius, threshold)
NoiseAdd Noise (uniform or Gaussian) · Despeckle · Median (radius 1–16 px)
StylizeDiffuse · Facet · Find Edges · Mosaic (cell size) · Trace Contour (level, lower or upper)
OtherCustom (a 5×5 kernel with scale and offset, saved and loaded) · High Pass · Maximum · Minimum · Offset

A filter runs on the active layer, restricted to the selection when there is one, with feathered edges honoured; it runs on a targeted layer mask or alpha channel just as happily. ⌘F repeats the last one.

Colour

Colour modes, channels and print

Documents can be Bitmap, Grayscale, Indexed Colour, RGB, CMYK, Lab or Multichannel, and each conversion is a single undoable step with the dialog the conversion needs — halftone and threshold options for Bitmap, palette and dithering for Indexed, and the ink transform for CMYK. Lab is the Photoshop-style 8-bit Lab, table-driven so a four-thousand-pixel-square picture converts in a fraction of a second.

Depth is 8 or 16 bits per channel. Sixteen-bit pictures keep deep planes beside the eight-bit working copy, so the extra precision survives opening the file, the Levels and Curves family of adjustments, and saving to the native TIFF — while the compositor, the display and the rest of the operations still work at eight bits. It is a real deep pipeline for the tonal work that needs one, not yet an end-to-end one.

Channels

The Channels palette shows the composite, the colour channels, the alpha channels and the active layer's mask; alpha channels can be created, duplicated and deleted, and any of them can be painted, filtered and adjusted like a greyscale picture. Image ▸ Calculate does channel arithmetic between open documents of the same size, and Trap is there for CMYK work.

Profiles and printing

Convert to Profile applies an ICC conversion with a live preview of the visible crop. The print dialog places the image on the sheet — centred or at an offset you type in your own units, scaled or fitted, inside the printer's own imageable area — with saved presets, printing marks and output-only colour management that can flatten 16-bit to 8 and convert to CMYK for the printer without touching the document.

Vector

Paths, the pen and smart objects

The pen did not go away. A pixel document carries its own paths — drawn, edited and stored with the file, with their edits threaded into the same History as the pixels — and those paths become selections, vector masks or filled and stroked pixels.

File ▸ Place brings in an SVG, an Adobe Illustrator file or a PDF as a smart object: the vector engine of SVG Editor rasterises it into the composite, so it stays sharp when you resize it instead of degrading like a pasted bitmap.

Layer ▸ Smart Objects ▸ Edit Contents writes the smart object's own source out and opens it in SVG Editor. Save there, and Photo Editor Pro notices the file changed and brings the new artwork straight back into the picture. Replace Contents, Export Contents, Reveal in Finder and Rasterize are all in the same menu, and the Links palette lists what a document has placed.

Files

Opening, saving and history

The native format is a layered TIFF

Saving writes a TIFF, LZW-compressed with a predictor. Anything that reads TIFF sees the flattened picture; Photoshop finds the layers in tag 37724; the app reads back the whole document — layers, names, masks, blend modes, groups, opacity, layer effects, adjustment layers, smart-object sources, guides, paths and alpha-channel names — from the image resources and its own private block. Nothing about the format is a lock-in: the file is still a TIFF.

Opening

TIFF, PSD, PNG, JPEG, HEIC and HEIF, GIF, BMP, WebP, AVIF, JPEG XL and OpenEXR open as pixel documents; ten-bit HEIC files are decoded at sixteen bits with their own colour space rather than being crushed to eight. SVG, PDF, Illustrator and EPS files come in placed as smart objects or rasterised into a layer. File ▸ Open As… reads the historical formats too: PICT, IFF, MacPaint, PixelPaint, Pixar, Scitex CT, Targa, ThunderScan, GIF and headerless raw pixel data.

Saving

⌘S saves back into the file it came from, in its own format — a PNG stays a PNG, a JPEG keeps the quality it was opened with — while TIFF and PSD keep the layers. PSD is written with groups, masks, blend keys and 16-bit channels.

History

One History palette for the document, with the opening snapshot and every committed step; click a step to jump. Cold steps spill to disk and reload transparently, so a long session does not end in a memory wall.

Automation

AI Console and MCP

The AI Console palette of the rest of the suite is in the app and knows it is looking at a picture — it reports the document in pixels. What it generates is vector artwork, and it lands on the document's own paths rather than on the pixels, so treat it as a drawing assistant next to the picture, not a retoucher. The Feedback palette is here too, and sends a report with screenshots straight from the window you are looking at.

For external assistants the app is an MCP server with twenty-three pe_* tools that work the pixel document itself, through the same machinery and the same History as the user interface — so an assistant's work is undoable exactly like yours:

pe_get_document_info pe_new_document pe_open pe_save_tiff pe_export pe_place pe_layers pe_select pe_fill pe_clear pe_adjust pe_filter_list pe_filter pe_mode pe_image_size pe_canvas_size pe_rotate_flip pe_crop pe_brush_stroke pe_undo pe_redo pe_pixel pe_screenshot

Scripting is a different story: the AppleScript command and the Illustrator-compatible .jsx runner drive the vector scene, and a pixel document has none. Pixel automation goes through the pe_* family.

Honesty

What it does not do yet

Photo Editor Pro is a young app, and 26.0 is a beta. These are the gaps worth knowing about:

  • Clipping masks exist in the compositor but have no menu item or palette gesture yet.
  • Blend If works while the document is open but is not written to the file, so it does not survive a save and reopen. The Advanced Blending controls beside it — fill opacity, per-channel blending, knockout and the effect toggles — are dialog state that the document does not store yet.
  • Dissolve is listed but composites as Normal.
  • Layer effects and adjustment layers stay live in the native TIFF but are baked into the picture when you export a PSD.
  • Camera raw files are not supported. The raw option in Open As… is headerless raw pixel data, not CR2, NEF, ARW or DNG.
  • There is no Liquify, no Filter Gallery, no smart filters, no Colour Range, no Refine Edge, no duotones and no gradient map.
  • Layer locking is a single lock rather than Photoshop's four, and there is no per-layer fill opacity.
  • Sixteen bits is a deep sidecar, not an end-to-end pipeline: the compositor and the display are still eight-bit, and resizing, rotating, cropping, converting mode or profile and flattening rebuild the deep planes from the eight-bit result.
  • The AI Console draws vectors onto the document's paths; it cannot paint, adjust or filter pixels. AppleScript and .jsx scripts drive the vector scene only.

This list changes fast, and the beta updates itself: Check for Updates… in the Photo Editor Pro menu pulls the next build as soon as it is signed.