PhotoCraft v0.12.0: PSD colour modes, DDS saving and Windows pen fixes
PhotoCraft v0.12.0: Indexed, Bitmap and Duotone PSDs saved in their own mode, 41 smart filters in PSD, DDS saving, Windows pen, print and startup fixes.
PhotoCraft v0.12.0 came out on 21 October 2026, one day after v0.11.1. Its release notes list 105 merged pull requests from 28 contributors, 7 of them first-time contributors. Three of those entries are integration batches that merged 120 pull requests together (#8094, #8095, #8271); most of them also have their own line, and counting both, 127 pull requests went in. The README still counts 67 tools. This is a smaller release than the last few: it saves Indexed Color, Bitmap and Duotone documents as PSDs in their own mode, writes more of Photoshop's PSD data back correctly, saves DDS textures, and fixes several Windows problems with pens, printing and startup. Much of the rest is small fixes to Crop, automation and PSD files. PhotoCraft is still early alpha, so expect rough edges.
The release notes open with the project's own scorecard, which counts Photoshop features as done, partial or missing. Since v0.11.1, 36 of 44 tool items are done (up from 33), and 9 of 27 file compatibility items (up from 7). Type has 5 of 9 done and one missing instead of two, Workspace and UI moved one item from missing to partial, and 31 of the 32 tracked open bugs are now done. Some of these moves are new work, such as the Content-Aware Move preview for large selections. Others only bring the scorecard up to date with work already in the app: the live Warp Text preview, for one, has been there since early October (#3516). 24 of 171 preferences still do nothing, and no performance number changed: 3 scenarios are within budget and 22 over. How PhotoCraft compares with Photoshop in daily use: /guides/photocraft-vs-photoshop.
Highlights
- Indexed Color, Bitmap and Duotone PSDs stay in their mode. An Indexed Color document is saved as an indexed PSD with its colour table and transparent entry, and a Bitmap document as a 1-bit PSD. Both are written flat, as Photoshop does. An imported Duotone is written back as Duotone. The PR's Indexed and Bitmap files opened in Photoshop 2025 in their own mode (#4816).
- More of a PSD survives PhotoCraft. 41 smart filters are now read from and written to Photoshop's own PSD data, up from 14. Placed layers with a split ("quilt") warp keep their curvature after Replace Contents (#6913), and colours stored as HSB no longer turn black or vanish (#6775). A type layer you edit or add in PhotoCraft now gets a complete text object; in the PR's tests, files that used to crash Photoshop on open now open (#7220, #7773).
- DDS textures save. Save As writes DDS uncompressed or as BC1, BC2 or BC3 (DXT1, DXT3, DXT5), with optional mipmaps. DDS has opened since v0.9.0; now a texture can be edited and saved back (#5993).
- Windows fixes for pens, printing and startup. With Windows Ink, the pen's barrel button works as a right-click, and Alt plus a barrel-button drag resizes the brush instead of painting (#6195). The Print dialog has Portrait and Landscape buttons (#7847). PhotoCraft starts on Windows installs without
Windows.Data.Pdf.dll, such as stripped-down or some N and LTSC images (#6395). - Brushes:
.abrfiles up to 1 GiB import, up from 512 MiB (#7180); the Mixer Brush gets Load Brush and Clean Brush, and its automatic load and clean can be turned off (#6939); Pattern Stamp and Background Eraser paint live while you drag (#3759). More on brushes: /guides/brushes. - Content-Aware Move previews large selections. Above 256 × 256 px, a rough result shows first, then the exact one. Before, only small selections had a preview (#6681).
- Gigapixel documents. A 3.1-gigapixel New Document (10 × 5 m at 200 ppi) no longer freezes the app: in the PR's tests its first redraw on the CPU canvas took under half a second instead of about 23 seconds (#5111).
- History panel menu. The History panel has Photoshop's menu with Step Forward, Step Backward and Clear History (#3534), and the column at the left of each state sets the History Brush source (#3536).
New tools and features
- Painting and retouching: the Mixer Brush's options bar shows the Current Brush Load swatch, whose menu holds Load Brush and Clean Brush, plus toggles for loading and cleaning after each stroke. A clean brush paints only the colour it picks up (#6939). Pattern Stamp, aligned or Impressionist, and Background Eraser draw live, and the result on release is the same pixels the live stroke showed. Spot Healing shows the area it heals as a dark overlay and heals on release, as Photoshop does (#3759). The Mixer Brush is the only brush tool left without a live preview. After Crop, Canvas Size, Image Size or a canvas flip or rotation, the painting symmetry axis stays on the same image content (#7733).
- Content-Aware Move: on a 24 MP image in the PR's test, a 1500 × 1000 px selection shows a rough result in 0.38 s and the exact one after about 4 s (#6681). See /guides/tools.
- Shapes and modes: shape layers get Density and Feather in the Properties panel, kept in PSD and
.pcraftfiles (#5847). Image › Mode › Bitmap opens Photoshop's full dialog with Output resolution, all five methods including Custom Pattern, and a live preview (#5889). - Layers and paths: the Layers panel's folder button groups every selected layer instead of making an empty group (#7225); Stamp Down keeps the lower layer's clipping, label and link (#7001); Apply Image can write into a targeted layer mask (#6781). A saved path selected in the Paths panel is drawn on the canvas (#6708), a path row can be dragged onto the Trash (#6721), and a finished Pen path keeps its anchor squares on screen (#6920).
- Move and Zoom: with Smart Guides on, holding Ctrl/⌘ with the Move tool over another layer shows the distances to it in magenta, or to the canvas edges over empty canvas (#6357). With Preferences › General › Animated Zoom on, holding the Zoom tool's button zooms continuously, and Alt zooms out (#6211).
- Export: Export As gets a Resample menu with Photoshop's six methods, Nearest Neighbor included, for hard-edged pixel art (#5840). In Save for Web, a slice covered by a later one is exported as its visible pieces, as in Photoshop, instead of writing the overlap twice (#7771).
- Type: superscript and subscript survive when a text layer is re-rendered and saved; there are no buttons for them in the Character panel yet (#5807). The Paragraph panel greys out the justify buttons for point text (#7728).
- Printing on Windows: the Orientation row turns the driver's settings, and the paper line and preview turn with them. A print laid out landscape on portrait driver settings, for example from a script, is turned instead of refused (#7847).
- Preferences: each painting tool keeps its own brush across launches, and restored tool options are clamped to the options bar's ranges (#6213). Preferences › File Handling › Save in Background now takes effect: turned off, saves run in the foreground with a progress dialog (#6208). On Linux machines with several GPUs, Preferences › Performance has a GPU adapter setting, applied at the next launch (#7813).
- Speed: the Blur and Sharpen tools are 2.6 to 3.3 times faster with large brushes (#5499); in the PR's test on an M4 Pro, documents with many full-canvas layers composite in 28 ms instead of 111 ms on the GPU, and in 485 ms instead of 627 ms on the CPU (#7566); dragging a Camera Raw slider no longer freezes the dialog (#6909); a cancelled Gaussian Blur stops within 44 ms (#6206); brush dabs on CMYK documents are now within the project's time budget (#5110).
File formats
- PSD colour modes: Indexed Color keeps its colour table, transparency, ICC profile and alpha channels; Bitmap is written 1 bit per pixel over white. Both modes have no layers in Photoshop, so a document with more than one layer is flattened, with a warning. Duotones made in PhotoCraft still go out as Grayscale with a warning, since writing their inks needs an undocumented block (#4816, #8095).
- Smart filters in PSD: among the newly mapped filters are Smart Sharpen, Dust & Scratches, Wind, Extrude, Tiles, Surface Blur, Smart Blur, Radial Blur, Offset, Custom, Mezzotint, Color Halftone, Diffuse, Trace Contour, Crystallize, Pointillize and the filters without options, such as Find Edges and Solarize. Hue/Saturation and Perspective Warp smart filters round-trip too. Filters PhotoCraft can't map are still kept as they were. The integration batch couldn't open the written files in Photoshop, so treat these as untested there (#8271).
- Placed layers: split warps are read as a multi-patch mesh and written back as Photoshop's
quiltWarp. One past the 64-patch limit is saved as no warp, with a warning (#6913). - Type in PSD: an edited type layer keeps its own text object instead of a stripped stub (#7220), a new type layer gets a full object and its own frame, and re-saving a file damaged by an earlier version repairs it (#7773). Font records of imported text are kept when you edit it (#6169). Every PhotoCraft version since v0.6.0 wrote the stub, so a PSD that gained or changed a type layer could crash Photoshop.
- More PSD and PSB fixes: PSBs with long global blocks use the
8B64signature, so Photoshop opens them (#7948); HSB colours in fills, strokes and gradient stops are read (#6775); Hue/Saturation adjustments export correctly (#7066); noise gradient fills render in the simple constant-colour case only (#6272); an unknown adjustment layer opens as an unsupported adjustment (#6722). - DDS writing: uncompressed RGBA, RGB, grayscale and grayscale with alpha are lossless; BC1 to BC3 use PhotoCraft's own block encoder. A DDS Options dialog asks for compression and mipmaps, and actions record the answer (#5993).
- GIF: an indexed GIF opens in Indexed Color with its colour table, as in Photoshop. Animated GIFs opened as video layers are unchanged (#7892).
- Batch: with Format "Same", camera raw files and other formats PhotoCraft can read but not write are saved as PSD instead of failing (#5857).
What opens and saves where: /guides/file-formats.
Languages
There are still 21 interface languages. The new labels for this release's dialogs, such as DDS Options, the Bitmap dialog and the History panel menu, have rows in all 20 translation catalogs. Some were translated by the PR authors and haven't had a native-speaker review; the GPU adapter label is one (#7813). See /guides/language.
Automation (CLI & MCP)
photocraft-cli batch --actionsno longer fails every file when an action, or an action it calls, contains a recorded Save, Save As or zoom step. The batch's own output replaces them, as in Photoshop's Batch (#6861).- Switching shortcut sets with
edit.keyboardShortcutsanduseSetkeeps the function keys assigned to actions (#7005). Deleting an action removes its function key (#7015), and renaming one updates the Conditional steps that call it (#6773). See /guides/shortcuts. - New history commands:
history.setSourcesets the History Brush source to a state or snapshot (#3536), andhistory.stepForward,history.stepBackwardandhistory.clearmatch the panel menu (#3534). doc.saverefuses aqualitythat isn't a whole number from 1 to 100 instead of ignoring or clamping it (#7024).doc.place,doc.exportLayers,doc.exportDataSetsanddoc.importDataSetswith anindexno longer change the active document (#7026).- Droplets made from an action with a Conditional step carry the actions it calls (#6805), and an imported Crop step recorded in a unit other than pixels is no longer applied as pixels (#7085). More on actions: /guides/actions.
- New parameters:
ddsCompressionandddsMipmapson the save commands, and--dds-compressionand--dds-mipmapsonconvert,runandbatch(#5993);orientationonfile.print.page(#7847);resampleonlayer.exportAs(#5840);brush.mixer.loadandbrush.mixer.clean(#6939).
Setup and examples: /guides/mcp-cli.
Web build
The online editor on this site runs the v0.12.0 web build. The release zip is 11,714,509 bytes (11.2 MiB), up from v0.11.1's 11,567,210.
Since v0.10.0 the web build hasn't shipped the app as one large .wasm file (#5941). The zip holds a small boot module (photocraft-web-boot-*_bg.wasm, 98,880 bytes, and its .js, 26,999 bytes) that starts the app, the app's glue code in app/photocraft-web.js (174,109 bytes), the list of parts in app/parts.txt, and the app itself, gzipped, in app/photocraft-web-*.part-aa (11,614,932 bytes, 11.1 MiB). Unpacked, the app is 25,412,487 bytes (24.2 MiB), up from 25,060,526 in v0.11.1.
- For visitors: the browser downloads about 11.1 MiB for the app, whether or not the server compresses files. Before v0.10.0 it was a 23.9 MiB
.wasmfile on a server without compression. - For self-hosting: upload the whole folder,
app/included. Serve the.part-*files byte for byte, without your ownContent-Encoding, and sendno-cacheforindex.html,app/photocraft-web.jsandapp/parts.txt; the zip's_headersand.htaccessdo this. No file in the site is over 24 MiB, so hosts with a 25 MiB file limit, such as Cloudflare Pages, accept it. - Apache: the v0.10.0 and v0.11.1 builds failed to start on Apache servers with
mod_mime_magic, which labels the gzip part so the browser unpacks it on the way (#7639). v0.12.0 starts there (#7683). That holds while the app fits in one part, as it does now. - Chinese, Japanese and Korean text still shows as empty boxes in the web build, in type layers and in the interface (#1615, still open). Use the desktop app for CJK text.
- Desktop only: the Content-Aware Move preview, since the web build has no threads. In the browser,
.abrimports stay capped at 512 MiB (#7180).
Self-hosting notes are on /download/web.
Fixes and stability
- Windows: PhotoCraft no longer refuses to start when
Windows.Data.Pdf.dllis missing; the DLL now loads only for a PDF print, which says what is missing (#6395). A maximized window lets an auto-hidden taskbar show (#6878). A busy clipboard no longer throws away an editable copied layer (#5587). With an Intel GPU, the Auto graphics setting starts on DirectX 12 without loading Intel's Vulkan driver, which could crash the first launch (#7217). - macOS: fonts activated outside the font folders, by a font manager, Adobe Fonts or Office, now show in the font menus (#6693).
- Large documents: when the GPU can't hold a huge canvas, PhotoCraft draws it on the CPU instead of turning the GPU off for the session (#5111). That fix wasn't tested on a Mac. Trim and merged Duplicate report an error on documents over 2^30 pixels (#7224).
- Colour: near-black colours on the GPU canvas match the display profile more closely (#7964).
- Crop and Perspective Crop: more than a dozen fixes, including Undo and Redo of the crop box, typed ratios, Straighten as one step, colour samplers that follow the crop, and Nearest Neighbor for Indexed Color documents (#7089, #7753, #7128, #7013, #7723).
- Interface: View › Snap off also turns off Smart Guide snapping (#5803); a new selection shows after Extras were hidden (#6222); Batch is greyed out until an action is recorded (#6711); New Video Layer from File… and Replace Footage… open a file picker instead of failing, and the Timeline's Stop button pauses, then rewinds (#3223).
- Robustness: inconsistent or hostile split warps and GIF colour tables are refused without a crash (#6913, #7892), and fill layers refuse non-finite gradient and pattern angles (#5753).
More known problems and fixes: /guides/troubleshooting.
Breaking changes or things to know
- No FreeBSD aarch64 build. The tarball that first appeared in v0.11.1 is gone again: the shared release pipeline for the Craft apps dropped it until it can be built in time (craft-common-actions#40). FreeBSD x86_64 is still there.
- Indexed Color and Bitmap PSDs are flat. Saving such a document as PSD merges its layers, as Photoshop does. Keep a
.pcraftor RGB copy if you need the layers (#4816). - The Keyboard Shortcuts dialog can still drop action keys. The fix covers switching sets through
edit.keyboardShortcuts. In the integration batch's own testing, switching sets in the dialog still dropped the function keys of actions (#8271). - Stricter automation. Scripts that pass
qualityas85.0or"85"todoc.savenow get an error (#7024), and calls with anindexno longer leave that document active (#7026). - Windows PCs with Intel graphics use DirectX 12 under Auto instead of Vulkan; on a laptop with a discrete GPU as well, that GPU still wins but also runs on DirectX 12. The PR author had no Intel hardware to test on. A backend chosen in Preferences,
WGPU_BACKENDand--safe-gpustill apply (#7217). - Windows 7 and 8: PhotoCraft still needs Windows 10 or later (#2310), and the v0.12.0 MSI still has no installer check for older versions.
How to update
Download the v0.12.0 build for your system from /download: Windows, macOS, Linux or the web build. The release has 28 files, one fewer than v0.11.1: photocraft-0.12.0-freebsd-aarch64.tar.gz is gone, and everything else is still there, including the Arch Linux .pkg.tar.zst packages and SHA256SUMS.txt. Builds come only from the official GitHub release; avoid third-party mirrors. If you are coming from v0.10.0 or earlier, also read the v0.11.1 notes.
Full release notes, with every merged pull request: PhotoCraft v0.12.0 on GitHub.