Commit Graph
5329 Commits
Author SHA1 Message Date
dotCooCoo c347abf499 TIFF: CMYK files with unnamed extra samples past their ExtraSamples values open opaque
A CMYK TIFF with two or more samples past its inks and its ExtraSamples
values, or with no ExtraSamples tag, which the decoder gives no color
type, now opens opaque when none of those values names an alpha. It
failed to open before; one that names an alpha already read with it.
2026-11-14 12:05:50 -08:00
dotCooCoo 3a834f705a TIFF: refuse files of over 64 samples a pixel from their tags
The 64-sample limit is now checked against the file's SamplesPerPixel
before anything is decoded. It was checked against the samples the
decoder gives, which is five for any CMYK file whose first ExtraSamples
value is alpha, so a small file with 65,535 samples a pixel was read and
the decoder took a row of every sample (1 GiB for a 16-bit file 8,192
pixels wide) before reading its data.

- The row the decoder reads each strip or tile into, when the file has
  more samples a pixel than it gives, counts in the allowance.
- Files whose samples aren't unsigned integers are refused from their
  tags; no reader takes them.
- The same checks run before CMYK inks and plates are decoded.
- The copy that puts a planar file's samples pixel by pixel is allocated
  once, at its length, so the reader holds no more than it counts.
2026-11-14 11:44:57 -08:00
dotCooCoo 87b861c480 TIFF: extra-sample reads count the planar copy and RGBA pixels in the allowance
A CMYK or grayscale TIFF with extra samples is now read only when its
decoded samples, the copy that puts a planar file's samples pixel by
pixel and the RGBA pixels together fit the decoding allowance; the
check counted the decoded samples alone, so a small compressed file
could make the reader hold about twice the allowance plus the RGBA
image.

- The decoder may decode no more than the counted samples, and reads no
  strip or tile of more compressed bytes than the file holds.
- A pixel of more than 64 samples is not read (VectorCraft's own limit).
2026-11-14 10:50:41 -08:00
dotCooCoo 82d675e0b2 TIFF: the decoder's default buffer limit is 256 MiB
The doc comments of with_room and of the large-file test, and the
progress-doc line, gave the tiff decoder's default decoding buffer
(268,435,456 bytes) as 256 MB.
2026-11-14 10:10:54 -08:00
dotCooCoo f5312d795f TIFF: stored CMYK TIFFs with alpha keep their inks; wide and large files read
A document saved with a CMYK TIFF whose alpha follows another extra
sample keeps it as a CMYK image with its ink amounts, so EPS and PDF
export write the same inks as before; Open and Place still read such a
file with its alpha.

- A CMYK file with two or more samples past its inks and its
  ExtraSamples values, which the decoder gives no color type, reads the
  alpha that one of those values names, and its Orientation tag is read.
- A TIFF with extra samples whose samples take more than the decoder's
  256 MB buffer reads, up to the decoding allowance.
- A file read as black-is-zero gray is read in place instead of copied.
2026-11-14 09:58:26 -08:00
dotCooCoo ddae31bad4 TIFF: alpha after another extra sample places and opens as transparency
A CMYK or grayscale TIFF reads its alpha from the first extra sample whose
ExtraSamples value is 1 or 2, wherever it comes among the extra samples, at
8 and 16 bits, chunky or planar. TIFF 6.0 gives each extra sample its own
ExtraSamples value, in order, and asks readers to skip extra samples they do
not use.

- A CMYK file with alpha after an unspecified extra sample was kept as
  opaque inks; it is now shown as RGB with its alpha.
- A grayscale file with alpha after an unspecified extra sample opened
  opaque.
- A six-sample CMYK file whose ExtraSamples tag lists only an unspecified
  value no longer reads that sample as transparency.
- A white-is-zero grayscale file with an alpha channel opens; it failed to
  read before.
2026-11-14 08:00:43 -08:00
BFlat 16d5710e8e Merge pull request #7430 from dotCooCoo/fix/es-missing-message-rows
i18n: Spanish translates 114 messages that no catalog had a row for
2026-11-14 21:55:57 +07:00
BFlat 2ebf037bc5 Merge pull request #7360 from dotCooCoo/feat/learn-progress-rings
Learn: steps get check boxes, and skill rings fill as tutorials are finished
2026-11-14 21:55:49 +07:00
BFlat 898553c79d Merge pull request #7563 from dotCooCoo/fix/text-zoom-marquee-space-moves
Zoom: Space moves a text-edit zoom marquee after Cmd is let go
2026-11-14 21:55:29 +07:00
BFlat edefbd0e7d Merge pull request #7449 from dotCooCoo/fix/links-stored-brush-art
Links: placed images in stored brush art get Links rows
2026-11-14 21:55:20 +07:00
BFlat cbba5e85fe Merge pull request #7528 from dotCooCoo/feat/ai-style-named-gradients
PDF/.ai import: graphic styles that paint with a named gradient load with it
2026-11-14 21:54:55 +07:00
BFlat b541d97a06 Merge pull request #7586 from dotCooCoo/fix/blend-spot-stop-plates
Blend: steps between gradients linked to the same spot swatch keep its process plates
2026-11-14 21:54:47 +07:00
BFlat 55939c1c54 Merge pull request #7594 from dotCooCoo/fix/panel-autoscroll-short-list
Panels: drag autoscroll scrolls the right way in a short list
2026-11-14 21:54:31 +07:00
BFlat 27a259e2db Merge pull request #7505 from dotCooCoo/fix/no-op-undo-steps
Undo: no step when Randomize Opacity or a type setting changes nothing
2026-11-14 21:54:21 +07:00
BFlat 32fbd81796 Merge pull request #7552 from dotCooCoo/fix/issue-7525
Fix #7525: Extrude & Bevel cuts sharp corners square instead of spiking
2026-11-14 21:54:11 +07:00
BFlat 66d24335e1 Merge pull request #7599 from dotCooCoo/fix/trace-hand-in-same-document
Image Trace: a finished trace is applied only to the document it was made in
2026-11-14 21:54:04 +07:00
BFlat 8863c41560 Merge pull request #7581 from dotCooCoo/fix/pdf-cmyk-image-keeps-icc
PDF export: CMYK images that keep their numbers carry their ICC profile
2026-11-14 21:53:33 +07:00
BFlat bde7be4390 Merge pull request #7447 from dotCooCoo/fix/text-inset-skips-seams
Type: area type insets stop at the frame's edges, not at an edge its contours share
2026-11-14 21:53:24 +07:00
BFlat 68b246851b Merge pull request #7261 from dotCooCoo/fix/smooth-keeps-closed-start
Smooth tool: smoothing over a closed path's first anchor keeps its start
2026-11-14 21:53:16 +07:00
BFlat 5762ec729b Merge pull request #7598 from dotCooCoo/fix/symbol-art-bounds-nested
Symbols: a symbol nested in symbol art is measured by its own art
2026-11-14 21:53:07 +07:00
BFlat 011d5c2b5d Merge pull request #7457 from dotCooCoo/fix/action-batch-step-number
Actions: Batch errors name the step by its place in the commands sent
2026-11-14 21:52:59 +07:00
BFlat aa21f10dd2 Merge pull request #7431 from dotCooCoo/fix/shortcut-optional-typed-params
Keyboard Shortcuts: panel menu commands with typed optional params can take a shortcut
2026-11-14 21:52:50 +07:00
BFlat 6e3ec907de Merge pull request #7592 from dotCooCoo/fix/brush-freehand-unknown-brush
Brushes: brush.freehand refuses a brush or style it cannot use
2026-11-14 21:52:42 +07:00
BFlat 158558c3d5 Merge pull request #7539 from dotCooCoo/fix/perspective-grid-noop-undo
Perspective: reapplying the current grid preset adds no undo step
2026-11-14 21:52:35 +07:00
BFlat c248d097ac Merge pull request #7545 from dotCooCoo/fix/remove-breaks-named-locked-type
Artwork Cleanup: text tools act on the locked or hidden type that ids names
2026-11-14 21:52:18 +07:00
BFlat 64dd5eb174 Merge pull request #7418 from dotCooCoo/fix/reflected-dimension-line
Dimension tool: a reflected aligned dimension has its line on the reflected side
2026-11-14 21:52:10 +07:00
BFlat 508a0b0180 Merge pull request #7597 from dotCooCoo/fix/separations-spot-stop-plates
Print: a spot gradient stop prints its process plates on the separations
2026-11-14 21:51:47 +07:00
BFlat 09f882b9d2 Merge pull request #7534 from dotCooCoo/fix/tiled-documents-own-profiles
Color management: documents behind the front one draw through their own profiles
2026-11-14 21:51:30 +07:00
BFlat 4807a2b6de Merge pull request #7596 from dotCooCoo/test/swatch-batch-spot-options-defaults
Swatches: test Spot Colors options and Default Swatches replace in a batch
2026-11-14 21:51:21 +07:00
BFlat a15b44fbe4 Merge pull request #7492 from dotCooCoo/fix/eps-bitmap-glyph-rollback-test
EPS: a test covers type taken back with its color bitmap glyph images
2026-11-14 21:51:13 +07:00
BFlat ea8aaa1a56 Merge pull request #7469 from dotCooCoo/fix/trace-flat-16-levels
Image Trace: clean flat art of 10 to 16 evenly spaced levels traces as flat color
2026-11-14 21:51:05 +07:00
BFlat b8b6a4a474 Merge pull request #7404 from dotCooCoo/fix/web-open-keeps-both-link-lines
Links: a web open with missing and modified links shows both lines
2026-11-14 21:50:57 +07:00
BFlat d4982efeab Merge pull request #7451 from dotCooCoo/fix/flat-logo-gray-between-black-and-white
Image Trace: Flat Logo traces a gray between black and white as one shape
2026-11-14 21:50:41 +07:00
BFlat ca546d0831 Merge pull request #7473 from dotCooCoo/fix/map-links-stop-plates
Swatches: a gradient stop unlinked from its spot swatch also drops its plates
2026-11-14 21:50:25 +07:00
BFlat 4c9d678863 Merge pull request #7591 from dotCooCoo/fix/swatch-edit-gradient-aspect
Swatches: a replacement gradient or pattern is stored the way a new swatch stores it
2026-11-14 21:50:09 +07:00
BFlat fc779c9412 Merge pull request #7506 from dotCooCoo/fix/cs-missing-message-rows
i18n: Czech translates 114 status and error messages that no catalog had
2026-11-14 21:49:35 +07:00
BFlat 60be06f7eb Merge pull request #7526 from dotCooCoo/perf/flatten-sweep-staggered-boxes
Flatten: boxes staggered right and down meet only the box before in the grouping sweep
2026-11-14 21:49:27 +07:00
BFlat 98324db329 Merge pull request #7460 from dotCooCoo/fix/plugin-store-folder-lock
Plug-ins: windows and processes take turns on the Plug-ins folder
2026-11-14 21:49:19 +07:00
BFlat 721ef5c5b2 Merge pull request #7559 from dotCooCoo/docs/mcp-own-folders-arrowheads
Docs: the automation-roots section names the app-folder commands that are confined
2026-11-14 21:48:34 +07:00
BFlat a1c49a3f21 Merge pull request #7472 from dotCooCoo/docs/complete-message-languages
Docs: the complete-message language lists match COMPLETE_MESSAGES
2026-11-14 21:48:27 +07:00
BFlat a550d02dff Merge pull request #7531 from dotCooCoo/fix/wayland-paste-copied-files
Clipboard: files copied in a file manager paste as art on core Wayland
2026-11-14 21:48:19 +07:00
BFlat d31457281a Merge pull request #7436 from dotCooCoo/fix/svg-masked-shadow
SVG export: shadows in a masked group show in readers that bound it by its shapes
2026-11-14 21:48:10 +07:00
BFlat a166e47069 Merge pull request #7538 from dotCooCoo/fix/sv-missing-message-rows
i18n: Swedish translates 114 more status and error messages
2026-11-14 21:48:02 +07:00
BFlat 0e54cf854a Merge pull request #7470 from dotCooCoo/fix/pt-br-missing-message-rows
i18n: Brazilian Portuguese translates 114 status and error messages that no catalog had
2026-11-14 21:47:53 +07:00
BFlat 6c1f0d8824 Merge pull request #7570 from dotCooCoo/fix/svg-nested-image-links-read
SVG import: linked rasters inside a linked SVG file are read
2026-11-14 21:47:30 +07:00
BFlat 9f91f96f18 Merge pull request #7286 from dotCooCoo/fix/actions-load-reports-unknown-commands
Actions: Load Actions reports steps with unknown command ids
2026-11-14 20:39:02 +07:00
BFlat 8d1aa857d5 Merge pull request #7276 from dotCooCoo/fix/issue-6784
Contextual Task Bar: Smooth opens the Smooth slider with Direct Selection
2026-11-14 20:38:54 +07:00
BFlat 94237e00a9 Merge pull request #7268 from dotCooCoo/fix/ai-warped-image-pieces-cropped
.ai export: the pieces of a warped image write only the pixels they show
2026-11-14 20:38:46 +07:00
BFlat 035d22b3e2 Merge pull request #7476 from dotCooCoo/fix/svg-clip-path-effects
Effects: a clipping path's geometry effects shape the clip on the canvas
2026-11-14 20:38:37 +07:00
BFlat 678a64259d Merge pull request #7575 from dotCooCoo/fix/recovery-write-keeps-newer-status
Recovery: a recovery copy that finishes later keeps a newer status line
2026-11-14 20:38:29 +07:00