mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-02 06:17:22 -06:00
* Brushes: import an image file as a brush tip (#3279) `brush.presets.importImage` reads an image (path, or base64 data with an optional fileName) through the normal importer, so any format and bit depth File > Open reads works. Its composite becomes a sampled tip the way Define Brush Preset reads a selection: darkness x alpha, cropped to the painted extent, at most 2500 px a side. The bounds are found band by band first, so a large mostly-white image never needs a full-size buffer. The preset is named after the file (never replacing an existing one) and becomes the current brush unless select is false. Import Brushes... in the Brushes panel and the brush preset picker now opens a picker for .abr and image files; images go to the new command, .abr files to brush.presets.importAbr as before. Automation refuses an ambient `path` for it like the other import commands. Define Brush Preset and the new command share `sampled_brush`. Scorecard TOOL-213-12 -> done. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Regenerate scorecard Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: regenerate scorecard after merging main Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Regenerate docs/scorecard.md after merging main * Regenerate docs/scorecard.md after merging main --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>