From de6c0efc00ccb6e95f7fa0162ddc8b49225fb54b Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Sun, 13 Sep 2026 13:48:11 +0300 Subject: [PATCH] fix(renderer): preserve proportions of FIT image fills --- CHANGELOG.md | 1 + packages/core/src/canvas/fills.ts | 26 +++---- tests/e2e/canvas/renderer-visuals.spec.ts | 69 ++++++++++++++++++ ...ar-clipboard-fixture-openpencil-darwin.png | Bin 0 -> 67123 bytes ...and-image-fill-modes-openpencil-darwin.png | Bin 25582 -> 37913 bytes tests/engine/render/canvas/image-fill.test.ts | 17 +++++ 6 files changed, 100 insertions(+), 13 deletions(-) create mode 100644 tests/e2e/canvas/renderer-visuals.spec.ts-snapshots/fit-avatar-clipboard-fixture-openpencil-darwin.png diff --git a/CHANGELOG.md b/CHANGELOG.md index c6661169f..09dd50f75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ ### Fixed +- Keep FIT image fills proportional, centered, and fully visible without stretching or cropped edges. - Preserve edited instance text, including cleared labels, when saving and reopening `.fig` files. - Honor `.pen` frame layout defaults and sizing and padding shorthands so imported auto-layout frames keep their computed dimensions and child positions. (#564) - Avoid macOS Keychain prompts during credential status checks and pause repeated credential access after failures until explicitly retried from Settings. diff --git a/packages/core/src/canvas/fills.ts b/packages/core/src/canvas/fills.ts index 0fff4de8f..7e27ea938 100644 --- a/packages/core/src/canvas/fills.ts +++ b/packages/core/src/canvas/fills.ts @@ -405,21 +405,20 @@ export function makeImageFillLocalMatrix( } } - let sx: number, sy: number, sw: number, sh: number if (scaleMode === 'FIT') { const scale = Math.min(node.width / imgW, node.height / imgH) - sw = imgW - sh = imgH - sx = -(node.width / scale - imgW) / 2 - sy = -(node.height / scale - imgH) / 2 - } else { - const scale = Math.max(node.width / imgW, node.height / imgH) - sw = node.width / scale - sh = node.height / scale - sx = (imgW - sw) / 2 - sy = (imgH - sh) / 2 + return r.ck.Matrix.multiply( + r.ck.Matrix.translated((node.width - imgW * scale) / 2, (node.height - imgH * scale) / 2), + r.ck.Matrix.scaled(scale, scale) + ) } + const scale = Math.max(node.width / imgW, node.height / imgH) + const sw = node.width / scale + const sh = node.height / scale + const sx = (imgW - sw) / 2 + const sy = (imgH - sh) / 2 + return r.ck.Matrix.multiply( r.ck.Matrix.scaled(node.width / sw, node.height / sh), r.ck.Matrix.translated(-sx, -sy) @@ -463,9 +462,10 @@ export function applyImageFill( return true } + const tileMode = scaleMode === 'FIT' ? r.ck.TileMode.Decal : r.ck.TileMode.Clamp const shader = img.makeShaderOptions( - r.ck.TileMode.Clamp, - r.ck.TileMode.Clamp, + tileMode, + tileMode, r.ck.FilterMode.Linear, r.ck.MipmapMode.Linear, localMatrix diff --git a/tests/e2e/canvas/renderer-visuals.spec.ts b/tests/e2e/canvas/renderer-visuals.spec.ts index 4aeb4646b..c451b8eb5 100644 --- a/tests/e2e/canvas/renderer-visuals.spec.ts +++ b/tests/e2e/canvas/renderer-visuals.spec.ts @@ -1,3 +1,5 @@ +import { readFile } from 'node:fs/promises' + import { expect, test, useEditorSetupWithClear } from '#tests/e2e/fixtures' const editor = useEditorSetupWithClear('/?test&no-chrome&no-rulers') @@ -64,6 +66,55 @@ test('boolean operations', async () => { await expectCanvas('boolean-operations') }) +test('FIT avatar preserves the full clipboard fixture image', async () => { + const bytes = await readFile('tests/fixtures/vectorize/pilot_avatar.png') + await editor.page.evaluate( + (data) => { + const store = window.openPencil?.getStore?.() + if (!store) throw new Error('OpenPencil store not initialized') + const hash = store.storeImage(new Uint8Array(data)) + store.graph.createNode('RECTANGLE', store.state.currentPageId, { + name: 'Bitmap background', + x: 80, + y: 80, + width: 320, + height: 222, + cornerRadius: 16, + fills: [ + { + type: 'SOLID', + color: { r: 241 / 255, g: 245 / 255, b: 249 / 255, a: 1 }, + visible: true, + opacity: 1 + } + ] + }) + store.graph.createNode('RECTANGLE', store.state.currentPageId, { + name: 'Pilot avatar · image fill FIT', + x: 138, + y: 90, + width: 204, + height: 202, + fills: [ + { + type: 'IMAGE', + imageHash: hash, + imageScaleMode: 'FIT', + color: { r: 0, g: 0, b: 0, a: 1 }, + visible: true, + opacity: 1 + } + ] + }) + store.clearSelection() + store.requestRender() + }, + [...bytes] + ) + await editor.canvas.waitForRender() + await expectCanvas('fit-avatar-clipboard-fixture') +}) + test('gradients and image fill modes', async () => { await editor.page.evaluate(async () => { const store = window.openPencil?.getStore?.() @@ -134,6 +185,24 @@ test('gradients and image fill modes', async () => { }) } + store.graph.createNode('RECTANGLE', pageId, { + name: 'FIT image with transparent margins', + x: 568, + y: 84, + width: 140, + height: 172, + fills: [ + { + type: 'IMAGE', + color: { r: 0, g: 0, b: 0, a: 1 }, + visible: true, + opacity: 1, + imageHash, + imageScaleMode: 'FIT' + } + ] + }) + const scaleModes = ['FILL', 'FIT', 'TILE', 'CROP'] as const for (const [index, imageScaleMode] of scaleModes.entries()) { store.graph.createNode('RECTANGLE', pageId, { diff --git a/tests/e2e/canvas/renderer-visuals.spec.ts-snapshots/fit-avatar-clipboard-fixture-openpencil-darwin.png b/tests/e2e/canvas/renderer-visuals.spec.ts-snapshots/fit-avatar-clipboard-fixture-openpencil-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb87930babb36ce65424c662150749b47851102 GIT binary patch literal 67123 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/canvas/renderer-visuals.spec.ts-snapshots/gradients-and-image-fill-modes-openpencil-darwin.png b/tests/e2e/canvas/renderer-visuals.spec.ts-snapshots/gradients-and-image-fill-modes-openpencil-darwin.png index d97005c95e6d6e7f31652644611ad194884af09f..b0aaee097252f8c6afaf2d9e4403cd7c22ca1266 100644 GIT binary patch literal 37913 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 T^Y5l}+Dhk?{>f~OD?j}o5tav2 literal 25582 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 D)9({* diff --git a/tests/engine/render/canvas/image-fill.test.ts b/tests/engine/render/canvas/image-fill.test.ts index ddf574f28..007f358ff 100644 --- a/tests/engine/render/canvas/image-fill.test.ts +++ b/tests/engine/render/canvas/image-fill.test.ts @@ -68,6 +68,23 @@ describe('canvas pattern fills', () => { }) describe('canvas image fills', () => { + test.each([ + { width: 100, height: 100, scale: 0.8, x: 20, y: 0 }, + { width: 240, height: 80, scale: 0.5, x: 0, y: 20 }, + { width: 60, height: 40, scale: 2, x: 0, y: 0 } + ])( + 'centers FIT images without stretching ($width × $height)', + ({ width, height, scale, x, y }) => { + const renderer = createRenderer() + const fill = { type: 'IMAGE', imageScaleMode: 'FIT' } as Fill + expect(makeImageFillLocalMatrix(renderer, fill, node, width, height)).toEqual([ + 'multiply', + ['translated', x, y], + ['scaled', scale, scale] + ]) + } + ) + test('keeps untransformed tile fills in image pixel space', () => { const renderer = createRenderer() const fill = { type: 'IMAGE', imageScaleMode: 'TILE' } as Fill