mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-02 18:13:39 +00:00
e647e102f3
Save As and Save a Copy to a JPEG now ask for JPEG Options before writing, as Photoshop does. Re-creates #4330 on current main and folds in the unique parts of #5580 (#5563). - codecs: `JpegFormat` (Baseline, Optimized, Progressive) on `EncodeOptions`. Progressive writes SOF2. Baseline Optimized fits the Huffman tables only at 4:4:4 (Gray, CMYK) or with Progressive: fitted tables make the baseline scans non-interleaved, which zune-jpeg 0.5.15 decodes wrongly with 4:2:0 chroma (zune-image#419), as Save for Web already works around. - engine: a `jpegFormat` save param (file.saveACopy, Batch, Image Processor, Layers to Files and every SaveOpts user; anything but the three names is BadParams before writing) and a shared 0–12 -> 1–100 `jpeg_quality()` that maps NaN/inf to 100. - ui-egui: `jpeg_options_ui` (Quality 0–12 with Low/Medium/High/Maximum presets, Format Options), parked like Targa Options. It starts at the opened JPEG's own quality (`file_encoding`, #4032), else the Export preference; left there, OK writes that quality exactly and the step records no `quality`. `SaveChoices` (Targa bits + JPEG) replaces the bare `tga_bits` through file.save / file.saveAs / app.save, replay and Save a Copy; automation never prompts. `write_answered_save` is shared with Targa Options. `park_at` + `Start` let any save seed the prompt. A File › Save that confirms the document's own flat JPEG is still journalled as a plain `file.save` (#3531). - CLI: `--jpeg-format`. - i18n: five new strings in all 20 catalogs (#4330's duplicate de/es/zh `Low`/`High` rows dropped: main has them since #4008). - Docs: book raster-formats JPEG bullet, control protocol, file-format parity, gaps G10, target-app parity; scorecard FILE-215-19 done. Co-authored-by: SckraT <70698629+SckraT@users.noreply.github.com> Co-authored-by: PierrunoYT <95778421+PierrunoYT@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>