Reference

How Glass Image Tools works, with the numbers. Every figure here is a value in the source code, checked on October 31, 2026, so you can look it up. Privacy covers what is kept and sent.

Sizes and limits

LimitValueWhy
Largest file you can open256 MiBChecked before and after the private copy is made, so an oversized file is never decoded.
Largest image you can open200 megapixelsRejects oversized source images before processing.
Largest crop you can export100 megapixelsLimits full-resolution rendering allocations.
Open images per window8Use New Window for more.
Retained image budget per window512 MiBEstimated source/preview cost for Open Images and Recents. Large exports can use additional memory.
Preview size2,048 pixels on the long sideThe canvas draws a smaller copy; Copy, Share and Save always use the full-resolution original.
Zoom100% to 800%Each step in the menu is 1.5×.

Crop

Annotations

SettingRangeStarts at
Stroke width1 to 80 pixelsScaled to the image: its width ÷ 400, between 2 and 24 pixels
Font size8 to 1,000 pixels48 pixels
Pixelate block size16 to 320 pixels, in steps of 4Four times the stroke width
TextFont, bold, italic, underline, alignment, color“Label”, in red
FillOn or off, any color and opacity, for closed shapesOff

Kinds: rectangle, rounded rectangle, ellipse, triangle, speech bubble, line, arrow, freehand drawing, text and pixelate. Pixel values are in the original image’s pixels, so an annotation is the same size in the output whatever the zoom. Annotations are drawn after the crop, and anything outside the crop is clipped from the output.

What Copy, Share and Save produce

ActionFormatNotes
CopyPNGOn the system clipboard, the same as Share › Copy. The app keeps no copy and no history.
Share (top of the window)PNGThrough Apple’s share sheet.
ExportPNG, or JPEG at 10% to 100% qualityJPEG flattens transparency onto white. The sheet shows the size in pixels and the file size before you send it.
Save New Image to PhotosPNG or JPEG, as chosen in ExportAlways a new photo; the original is untouched.

Every new image is rendered fresh from the original’s pixels, so it carries no metadata from the original: no location, camera, or dates. The original file’s orientation is applied first, so a rotated or mirrored photo comes out upright. Pixelated areas are rebuilt from blocks in the new image itself; the detail beneath them isn’t in the file.

Color

If the screenshot or an annotation color is wide-color, the new image is Display P3; otherwise it’s sRGB. Either way it’s 8 bits per channel. HDR brightness above standard white isn’t kept.

What’s stored, and where

WhatWhereHow long
A private copy of each image you openThe app’s temporary folder, protected while the headset is lockedWhile it’s open or in Recents. Anything left after a force-quit is deleted at the next launch.
Crop, annotations and Undo historyMemory onlyUntil you close the image.
RecentsThe app’s temporary folderUntil Clear Recents or the window closes.
The file being prepared to copy, share or saveThe app’s temporary folderUntil the action finishes; leftovers are deleted at the next launch.
Appearance (Opacity, Glass)The app’s preferencesUntil you change them or delete the app.

The image description

On visionOS 27 or later, when Apple Intelligence is on and its model can read images, the app sends the preview of the original to Apple’s on-device model through the Foundation Models framework, asking for one factual sentence and treating any text in the image as content, never as instructions. Replies are limited to 100 tokens and shown up to 1,000 characters. One description is made at a time across all windows. If the model is busy it tries again after 2 seconds; if it’s still getting ready, after 30. Nothing about it is saved.

Permissions

Accessibility

Capture

The app doesn’t capture the screen. visionOS 27 offers apps a system picker for sharing screen content (ScreenCaptureKit), but on visionOS an app can’t list other apps’ windows or take a screenshot directly. A separate experiment in the source (GlassImageToolsCaptureProbe) compiles against those tools; no capture path has been confirmed working on a headset, and the editor doesn’t depend on one. The full findings are in CAPTURE_CAPABILITIES.md.

For developers

CONTRIBUTING.md has the details.