Image Editor

You can open raster images (PNG, JPEG, HEIC, GIF, TIFF, and similar formats) in the built-in editor without leaving your workspace. Crop, rotate, mark up, adjust color, recognize text, or remove backgrounds. All edits stay non-destructive until you save.

Opening an image

  1. Click an image file in the Explorer.
  2. Wait while Loading image… is shown. The image then opens fitted to the window, never enlarged beyond its actual size.
  3. Choose a mode from the segmented control in the toolbar: Pan, Crop, Markup, or Adjust.

Pan is selected by default, so dragging never edits the image by accident. The status line below the toolbar shows a hint for the current mode, explains why an action is unavailable, and reports results.

If an image can’t be decoded, the editor shows Unable to render this image.

Viewing and navigation

ActionHow
PanDrag in Pan mode
Pan temporarily in any modeHold Space and drag
ZoomPinch, scroll, or use the Zoom Out / Zoom In buttons
Fit the whole imageOpen the zoom percentage menu and choose Zoom to Fit
View actual pixelsOpen the zoom percentage menu and choose Actual Size

At Actual Size (100%), one image pixel maps to one screen pixel, including on Retina displays. CrispyVibe keeps your zoom and scroll position when the image refreshes.

Global text size (Cmd++ or Cmd+=, Cmd+-, Cmd+0) doesn’t affect image zoom.

Non-destructive editing

CrispyVibe keeps the original image and applies your edits on top of it as an ordered list. Nothing changes on disk until you choose Save.

  • Undo / Redo — step through every committed edit: crop, rotation, flip, straighten, resize, markup, adjustments, and background removal. Use the toolbar buttons or Cmd+Z / Cmd+Shift+Z. History keeps up to 200 steps.
  • Revert — discard all unsaved edits and return to the last opened or saved image. Revert is itself undoable.
  • Copy — copy the edited image to the clipboard at full resolution.

Large images may display a reduced-resolution preview while you work. Save, Copy, Export As, and Smart Tools always render from the full-resolution original, so preview resolution never reduces your output.

Cropping

  1. Select Crop. A box covers the full image, with eight handles, a dimmed outside area, a rule-of-thirds grid, and the live size in pixels.
  2. Drag a handle to resize the box, drag inside it to move it, or drag outside it to draw a new box.
  3. Optionally choose a ratio from the Aspect Ratio menu: Freeform, Original, Square, 4:3, 3:2, or 16:9.
  4. Optionally click Swap Orientation to switch between landscape and portrait (available for Original, 4:3, 3:2, and 16:9).
  5. Press Return or click Apply Crop.

To start over, press Escape or click Cancel Crop to reset the box.

With the image focused, the arrow keys move the crop box by 1 pixel, and Shift+arrow keys move it by 10 pixels. A crop must be at least 2×2 pixels.

⚠️ Note: A crop box you’ve changed stays visible when you switch modes, and it blocks Save until you apply or cancel it. The untouched full-image box is only a starting guide. It doesn’t block Save and disappears when you leave Crop mode.

Rotating, flipping, straightening, and resizing

These controls appear in the Crop toolbar row. Each one is a separate undoable edit.

ControlEffect
Rotate Left / Rotate RightTurn the image 90°
Flip Horizontal / Flip VerticalMirror the image
StraightenDrag the slider from −45° to +45°. The image previews with a grid; releasing the slider commits the change.
Resize…Set a new size in pixels

Straighten crops the result automatically to keep the original aspect ratio, so no transparent corners appear.

Resizing

  1. Click Resize….
  2. Enter a Width and Height in pixels. Leave Keep proportions on to update the other dimension automatically.
  3. Optionally click a preset: 25%, 50%, 75%, or 200%.
  4. Click Resize.

Each edge must be between 1 and 16,384 pixels. Entering the current size makes no change.

💡 Tip: Any rotate, flip, straighten, resize, or applied crop clears a crop box you haven’t applied yet.

Markup

Select Markup to annotate the image with editable objects.

ToolUse
SelectClick an item to edit, move, or resize it
PenDraw freehand strokes
Line / ArrowDraw straight lines or arrows
Rectangle / EllipseDraw shapes, outlined or filled
HighlightDraw a translucent highlighter over content
TextClick to place text, then edit it in the toolbar
Blur / PixelateObscure an area visually
RedactCover an area with an opaque block

Adding markup

  1. Choose a tool.
  2. Set the style in the markup toolbar: Color, Fill, and Width. For text, also set the text, Font, and Size.
  3. Drag on the image to create the item.

Hold Shift while drawing to snap lines and arrows to 45° steps or to draw squares and circles.

Editing markup

Each item stays editable until a later crop, rotate, flip, straighten, resize, or background removal.

  • Click an item to select it.
  • Drag the item to move it.
  • Drag one of its eight handles to resize it. Hold Shift to keep its proportions.
  • Drag the end handles of a line or arrow to reposition its ends.
  • Change Color, Fill, Width, Font, or Size to update the selected item. The same values become the defaults for new items.
  • Double-click a text item to edit its text.
  • Click Delete or press Delete to remove the selected item.

Rapid changes to one item, such as typing or repeated nudges, combine into a single Undo step.

⚠️ Note: A crop, rotate, flip, straighten, resize, or background removal flattens earlier markup into the image. It still looks the same, but you cannot select or edit it. Undo the later edit to make the markup editable again, and finish markup edits before changing geometry.

Blur, Pixelate, and Redact

🚨 Warning: Blur and Pixelate aren’t secure for sensitive text. Obscured content can sometimes be reconstructed. Use Redact for passwords, keys, and personal data.

Redact replaces the covered pixels with an opaque block in the saved or exported file. Check the exported file before sharing it. The original image file is unchanged until you save over it.

Picking a color from the screen

  1. In Markup mode, click Pick Color from Screen (the eyedropper button).
  2. Click anywhere on screen to sample that color.

The sampled color becomes the stroke Color for the selected item and for new items.

Adjusting color

  1. Select Adjust.
  2. Drag any slider: Exposure, Contrast, Saturation, Vibrance, Temperature, Highlights, Shadows, or Sharpness.
  3. Release the slider. Each release records one undoable change.

The image previews changes live while you drag. Press and hold Compare to see the image without adjustments. Click Reset Adjustments to return every slider to its default; reset is undoable.

Adjustments apply to the whole image and stay in effect through later crops, rotations, and markup.

Smart Tools

The Smart Tools menu in the toolbar provides on-device image analysis. It uses Apple’s Vision framework on your Mac, and the image is never uploaded.

Recognizing text

  1. Open Smart Tools and choose Recognize Text.
  2. Wait for Recognizing text… to finish. Found lines are outlined on the image and listed in reading order in the Recognized Text sheet.
  3. Copy the text you need:
    • Select lines and click Copy Selected.
    • Click Copy All Text.
    • Right-click a line and choose Copy.
  4. Click Done to close the sheet.

Text goes to the clipboard only when you choose a copy action. To reopen the results later, choose Smart Tools > Show Recognized Text…. Editing or reloading the image clears the results.

Removing the background

  1. Open Smart Tools and choose Remove Background.
  2. Wait for Removing background… to finish.

CrispyVibe keeps the detected subjects and makes everything else transparent. The result is one undoable edit, and it flattens earlier markup. If no subject is found, the status line says so and the image is unchanged.

⚠️ Note: JPEG, BMP, and GIF can’t store this transparency, so Save is disabled after background removal for those files. Use Export As… and choose PNG, HEIC, or TIFF.

Saving and exporting

Saving over the original

Click Save or press Cmd+S. CrispyVibe renders your edits at full resolution and replaces the file on disk. Editing is locked until the save finishes and the saved file reloads, so what you see matches what was written.

If saving fails, your edits stay in the editor and the status line explains why. Fix the problem and save again.

Save is disabled, with a reason in the status line, when:

  • A changed crop box hasn’t been applied or cancelled
  • The image has multiple frames or pages, such as an animated GIF or multi-page TIFF
  • The image uses more than 8 bits per channel, such as a 16-bit TIFF or PNG
  • The image is HDR with a gain map, which saving would lose
  • Background removal added transparency to a JPEG, BMP, or GIF
  • The file changed on disk and the conflict isn’t resolved yet

In each of these cases, Copy and Export As… still work. To flatten a multi-frame, high-bit-depth, or HDR image, export a copy with Export As….

Exporting a copy

  1. Click Export As….
  2. Choose a Format: PNG, JPEG, HEIC, or TIFF.
  3. For JPEG or HEIC, set the Quality.
  4. Click Choose Location….
  5. Pick a name and folder in the save panel.

Export As writes a separate, flattened file at full resolution. The open image, its edits, and its undo history stay as they are. JPEG doesn’t support transparency, so transparent areas become solid.

💡 Tip: Export As refuses to overwrite the open image, including through a symbolic link or hard link. Use Save to replace the original.

Orientation and metadata

Photos with an EXIF orientation tag (common for camera and phone images) display upright. CrispyVibe writes saved and exported images with upright pixels and a standard orientation for consistent display across apps.

Saved and exported files are a single 8-bit RGB image. EXIF, IPTC, and GPS metadata isn’t preserved, and color profiles aren’t kept beyond the working color space.

When the file changes on disk

If another app or tool changes the image while you have no unsaved edits, CrispyVibe reloads it automatically and keeps your zoom and position.

If you have unsaved edits or a changed crop box, CrispyVibe keeps your work and shows a banner:

  • Reload from Disk — discard your edits and load the new version.
  • Keep My Edits — keep working. Your next save overwrites the version on disk.

CrispyVibe checks the file again before writing, so a change made while saving is caught instead of overwritten.

Remote images

Images in SSH remote projects open in the same editor, with every tool available. The file on the remote host stays the source of truth. Save writes your edits back to the remote host.

CrispyVibe watches the remote file for changes. A clean image refreshes automatically, and unsaved edits trigger the same Reload from Disk / Keep My Edits banner. Before uploading, Save confirms that the remote file hasn’t changed since you opened it. If it has, Save stops with an error and keeps your edits.

⚠️ Note: Remote change detection uses the file’s size and modification time, which SFTP reports to the nearest second. A same-size change made within one second of your save can go undetected.

SVG files

SVG files open in a separate read-only vector preview, not the image editor. Scripts in SVG files don’t run. The SVG preview follows the global text size (Cmd+=, Cmd+-, Cmd+0) without reloading.

Accessibility

The image editor works with VoiceOver and the keyboard:

  • Status changes, such as Crop applied. or Image saved., are announced.
  • Markup tool buttons report which tool is selected.
  • The image reports its size and how many markup items it contains.
  • In Markup mode, each item is a button. Press it to select the item, then use the Delete, Move Left, Move Right, Move Up, or Move Down actions.
  • In Crop mode, use the Shrink Crop, Expand Crop, Move Left, Move Right, Move Up, Move Down, Apply Crop, and Cancel Crop actions to crop without a pointer.
  • Adjustment sliders announce their current values, and Compare can be toggled from VoiceOver.

Keyboard shortcuts

Canvas shortcuts work when the image has focus. CrispyVibe focuses the image when it opens and when you change modes, unless you’re typing in a text field.

ActionShortcut
SaveCmd+S
UndoCmd+Z
RedoCmd+Shift+Z
Pan temporarily in any modeHold Space and drag
Apply cropReturn
Reset crop boxEscape
Move crop box by 1 / 10 pixelsArrow keys / Shift+arrow keys
Constrain lines, arrows, and shapes while drawingHold Shift
Keep proportions while resizing an itemHold Shift while dragging a handle
Select next / previous markup itemTab / Shift+Tab
Move selected markup by 1 / 10 pixelsArrow keys / Shift+arrow keys
Delete selected markupDelete or Forward Delete
Deselect markupEscape

Space and arrow keys combined with Cmd, Option, or Control pass through to app and system shortcuts.

Troubleshooting

IssueSolution
Loading image… stays visibleThe image is large and still decoding. Wait, or open another file. The older load is cancelled safely.
Unable to render this image.The file may be corrupt or in an unsupported format. Try opening it in Preview.
Save is disabledRead the status line. Apply or cancel a changed crop, resolve a file-change banner, or use Copy or Export As… if the format can’t be saved over safely.
Markup can’t be selectedA later crop, rotation, flip, straighten, resize, or background removal flattened it. Undo that edit to edit the markup again.
The image changed during analysis. Try again.The image was edited or reloaded while Smart Tools were running. Run the tool again.
Save fails with a remote-change errorThe image changed on the remote host. Choose Reload from Disk or Keep My Edits, then save again.
Export As says to choose a different fileYou picked the open image as the destination. Choose a new name, or use Save.

Known limitations

  • Images load in one step; there’s no low-resolution placeholder while a large image decodes.
  • A crop, rotate, flip, straighten, resize, or background removal flattens earlier markup.
  • Saved and exported files are a single upright 8-bit RGB image without EXIF, IPTC, or GPS metadata. There’s no layered format such as PSD.
  • Multi-frame, high-bit-depth, and HDR gain-map images can’t be saved over; use Export As… to create a flattened copy.
  • Very large images can use substantial memory during Save, Copy, Export As, and Smart Tools, which all work at full resolution.
  • Remote change detection can miss a same-size change made within one second.