From 74d564a67e0d1cc23acc3b04666d08c4e5a9d2ba Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Sun, 28 Jun 2026 00:30:24 -0700 Subject: [PATCH] fix(windows): trim macOS safe-area inset so app icon fills the canvas (#6548) The Windows ICO was rasterized straight from the untrimmed 1024px macOS render, inheriting Icon Composer's transparent safe-area inset (glyph only ~83% of the canvas). Windows scales the largest ICO frame down for the taskbar/"Open with" list without compensating, so the icon looked visibly small next to native apps. Add config/scripts/trim-windows-icon-source.mjs (pngjs-based): trims the transparent inset, re-squares with a small 2% margin, and emits a filled multi-size ICO (~96% fill). Regenerate resources/build/icon.ico from it and update generate.sh to delegate to the script so the committed binary stays in sync regardless of whether ImageMagick is installed. Fixes #5357 Co-authored-by: brennanb2025 --- config/scripts/trim-windows-icon-source.mjs | 219 ++++++++++++++++++ .../scripts/trim-windows-icon-source.test.mjs | 114 +++++++++ resources/build/icon.ico | Bin 119952 -> 58131 bytes resources/icon-source/generate.sh | 12 +- 4 files changed, 342 insertions(+), 3 deletions(-) create mode 100644 config/scripts/trim-windows-icon-source.mjs create mode 100644 config/scripts/trim-windows-icon-source.test.mjs diff --git a/config/scripts/trim-windows-icon-source.mjs b/config/scripts/trim-windows-icon-source.mjs new file mode 100644 index 00000000000..90a1914e733 --- /dev/null +++ b/config/scripts/trim-windows-icon-source.mjs @@ -0,0 +1,219 @@ +#!/usr/bin/env node +// Build the Windows multi-size ICO from the macOS 1024px render, trimming the +// transparent Icon Composer "safe-area" inset so the glyph fills the canvas the +// way other Windows taskbar/"Open with" icons do. Without this the glyph is only +// ~83% of the frame and looks visibly small next to native apps (issue #5357). +import { existsSync, readFileSync, writeFileSync } from 'node:fs' +import { dirname, join } from 'node:path' +import { fileURLToPath } from 'node:url' +import { PNG } from 'pngjs' + +// Why: Windows renders the largest ICO frame at small sizes too, so the glyph +// must fill nearly the whole canvas (~96%) to match native apps. A small uniform +// margin keeps anti-aliased edges and the soft shadow from clipping at the border. +export const ICON_CANVAS_MARGIN_RATIO = 0.02 +// Why: alpha below this is treated as background; the macOS render fades the +// safe-area shadow to a few percent opacity, which must not count as glyph. +const ALPHA_BACKGROUND_THRESHOLD = 16 +// Standard Windows ICO sizes, largest first (matches the prior ImageMagick set). +export const ICO_FRAME_SIZES = [256, 128, 64, 48, 32, 16] + +export function decodePng(buffer) { + const png = PNG.sync.read(buffer) + return { width: png.width, height: png.height, data: png.data } +} + +export function encodePng({ width, height, data }) { + const png = new PNG({ width, height }) + data.copy(png.data) + return PNG.sync.write(png) +} + +// Tightest box containing every pixel whose alpha exceeds the background +// threshold. Returns null when the image is fully transparent. +export function findOpaqueBounds({ width, height, data }, threshold = ALPHA_BACKGROUND_THRESHOLD) { + let minX = width + let minY = height + let maxX = -1 + let maxY = -1 + for (let y = 0; y < height; y++) { + for (let x = 0; x < width; x++) { + const alpha = data[(y * width + x) * 4 + 3] + if (alpha > threshold) { + if (x < minX) { + minX = x + } + if (x > maxX) { + maxX = x + } + if (y < minY) { + minY = y + } + if (y > maxY) { + maxY = y + } + } + } + } + if (maxX < 0) { + return null + } + return { minX, minY, maxX, maxY, width: maxX - minX + 1, height: maxY - minY + 1 } +} + +// Crop an RGBA image to the given inclusive bounds. +export function cropImage({ width, data }, bounds) { + const cropWidth = bounds.width + const cropHeight = bounds.height + const out = Buffer.alloc(cropWidth * cropHeight * 4) + for (let y = 0; y < cropHeight; y++) { + const srcRow = (bounds.minY + y) * width + bounds.minX + const srcStart = srcRow * 4 + out.set(data.subarray(srcStart, srcStart + cropWidth * 4), y * cropWidth * 4) + } + return { width: cropWidth, height: cropHeight, data: out } +} + +// Center the (already-trimmed) glyph on a transparent square canvas, leaving a +// small uniform margin so edges/shadow do not clip. The square side is the +// glyph's longer dimension grown by the margin so the glyph keeps its shape. +export function squareWithMargin(image, marginRatio = ICON_CANVAS_MARGIN_RATIO) { + const longSide = Math.max(image.width, image.height) + const side = Math.round(longSide / (1 - 2 * marginRatio)) + const data = Buffer.alloc(side * side * 4) + const offsetX = Math.floor((side - image.width) / 2) + const offsetY = Math.floor((side - image.height) / 2) + for (let y = 0; y < image.height; y++) { + const srcStart = y * image.width * 4 + const dstStart = ((offsetY + y) * side + offsetX) * 4 + data.set(image.data.subarray(srcStart, srcStart + image.width * 4), dstStart) + } + return { width: side, height: side, data } +} + +// Area-averaging (box filter) resize with premultiplied alpha so transparent +// edges do not bleed dark fringes. Used to downscale to each ICO frame size. +export function resizeImage(image, targetWidth, targetHeight) { + const { width: srcW, height: srcH, data: src } = image + const out = Buffer.alloc(targetWidth * targetHeight * 4) + const scaleX = srcW / targetWidth + const scaleY = srcH / targetHeight + for (let ty = 0; ty < targetHeight; ty++) { + const sy0 = ty * scaleY + const sy1 = (ty + 1) * scaleY + const y0 = Math.floor(sy0) + const y1 = Math.min(srcH, Math.ceil(sy1)) + for (let tx = 0; tx < targetWidth; tx++) { + const sx0 = tx * scaleX + const sx1 = (tx + 1) * scaleX + const x0 = Math.floor(sx0) + const x1 = Math.min(srcW, Math.ceil(sx1)) + let rSum = 0 + let gSum = 0 + let bSum = 0 + let aSum = 0 + let weightSum = 0 + for (let sy = y0; sy < y1; sy++) { + const wy = Math.min(sy1, sy + 1) - Math.max(sy0, sy) + for (let sx = x0; sx < x1; sx++) { + const wx = Math.min(sx1, sx + 1) - Math.max(sx0, sx) + const weight = wx * wy + if (weight <= 0) { + continue + } + const idx = (sy * srcW + sx) * 4 + const alpha = src[idx + 3] + const premul = (alpha / 255) * weight + rSum += src[idx] * premul + gSum += src[idx + 1] * premul + bSum += src[idx + 2] * premul + aSum += alpha * weight + weightSum += weight + } + } + const dst = (ty * targetWidth + tx) * 4 + if (weightSum === 0 || aSum === 0) { + out[dst] = 0 + out[dst + 1] = 0 + out[dst + 2] = 0 + out[dst + 3] = 0 + continue + } + const alphaAvg = aSum / weightSum + const colorDivisor = alphaAvg / 255 + out[dst] = Math.round(rSum / weightSum / colorDivisor) + out[dst + 1] = Math.round(gSum / weightSum / colorDivisor) + out[dst + 2] = Math.round(bSum / weightSum / colorDivisor) + out[dst + 3] = Math.round(alphaAvg) + } + } + return { width: targetWidth, height: targetHeight, data: out } +} + +// Encode a Windows .ico holding PNG-compressed frames (supported since Vista, +// the format ImageMagick's auto-resize also emits for the larger sizes). +export function encodeIco(frames) { + const header = Buffer.alloc(6) + header.writeUInt16LE(0, 0) // reserved + header.writeUInt16LE(1, 2) // type 1 = icon + header.writeUInt16LE(frames.length, 4) + + const directory = Buffer.alloc(frames.length * 16) + let dataOffset = 6 + frames.length * 16 + const payloads = [] + frames.forEach((frame, index) => { + const png = encodePng(frame) + payloads.push(png) + const entry = index * 16 + // Width/height of 256 are stored as 0 per the ICO spec. + directory.writeUInt8(frame.width >= 256 ? 0 : frame.width, entry) + directory.writeUInt8(frame.height >= 256 ? 0 : frame.height, entry + 1) + directory.writeUInt8(0, entry + 2) // color count (0 = truecolor) + directory.writeUInt8(0, entry + 3) // reserved + directory.writeUInt16LE(1, entry + 4) // color planes + directory.writeUInt16LE(32, entry + 6) // bits per pixel + directory.writeUInt32LE(png.length, entry + 8) + directory.writeUInt32LE(dataOffset, entry + 12) + dataOffset += png.length + }) + + return Buffer.concat([header, directory, ...payloads]) +} + +// Trim the safe-area inset from a 1024px source render and produce a filled +// multi-size ICO buffer. Exported so the regression test can drive it directly. +export function buildWindowsIcoFromPng(sourcePngBuffer, sizes = ICO_FRAME_SIZES) { + const source = decodePng(sourcePngBuffer) + const bounds = findOpaqueBounds(source) + if (!bounds) { + throw new Error('Source icon is fully transparent; cannot trim safe-area inset.') + } + const trimmed = cropImage(source, bounds) + const filled = squareWithMargin(trimmed) + const frames = sizes.map((size) => resizeImage(filled, size, size)) + return encodeIco(frames) +} + +function resolveDefaultPaths() { + const scriptDir = dirname(fileURLToPath(import.meta.url)) + const projectDir = dirname(dirname(scriptDir)) + return { + sourcePng: join(projectDir, 'resources', 'build', 'icon.png'), + outputIco: join(projectDir, 'resources', 'build', 'icon.ico') + } +} + +function main() { + const { sourcePng, outputIco } = resolveDefaultPaths() + if (!existsSync(sourcePng)) { + console.error(`Error: source PNG not found at ${sourcePng}`) + process.exit(1) + } + const ico = buildWindowsIcoFromPng(readFileSync(sourcePng)) + writeFileSync(outputIco, ico) + console.log(` -> ${outputIco} (filled multi-size ICO, safe-area inset trimmed)`) +} + +if (import.meta.url === `file://${process.argv[1]}` || process.argv[1]?.endsWith('trim-windows-icon-source.mjs')) { + main() +} diff --git a/config/scripts/trim-windows-icon-source.test.mjs b/config/scripts/trim-windows-icon-source.test.mjs new file mode 100644 index 00000000000..a52f0c49f2c --- /dev/null +++ b/config/scripts/trim-windows-icon-source.test.mjs @@ -0,0 +1,114 @@ +import { readFileSync } from 'node:fs' +import { dirname, join } from 'node:path' +import { fileURLToPath } from 'node:url' +import { describe, expect, it } from 'vitest' +import { PNG } from 'pngjs' +import { + buildWindowsIcoFromPng, + cropImage, + findOpaqueBounds, + resizeImage, + squareWithMargin +} from './trim-windows-icon-source.mjs' + +const scriptDir = dirname(fileURLToPath(import.meta.url)) +const projectDir = dirname(dirname(scriptDir)) +const buildDir = join(projectDir, 'resources', 'build') + +// Why: Windows scales the largest ICO frame down for the taskbar/"Open with" +// list, so the glyph must fill most of that frame to match native apps. The +// macOS safe-area inset left it at ~83%, which is the visible defect (#5357). +const MIN_GLYPH_FILL_FRACTION = 0.92 + +function largestIcoFrame(icoBuffer) { + const count = icoBuffer.readUInt16LE(4) + let best = null + for (let i = 0; i < count; i++) { + const entry = 6 + i * 16 + let width = icoBuffer.readUInt8(entry) + if (width === 0) { + width = 256 + } + const byteLength = icoBuffer.readUInt32LE(entry + 8) + const imageOffset = icoBuffer.readUInt32LE(entry + 12) + if (!best || width > best.width) { + best = { width, byteLength, imageOffset } + } + } + return best +} + +function decodeIcoFrame(icoBuffer, frame) { + const payload = icoBuffer.subarray(frame.imageOffset, frame.imageOffset + frame.byteLength) + const isPng = + payload[0] === 0x89 && payload[1] === 0x50 && payload[2] === 0x4e && payload[3] === 0x47 + if (!isPng) { + throw new Error('Expected PNG-compressed ICO frame') + } + const png = PNG.sync.read(Buffer.from(payload)) + return { width: png.width, height: png.height, data: png.data } +} + +function glyphFillFraction(image) { + const bounds = findOpaqueBounds(image) + if (!bounds) { + return 0 + } + return Math.max(bounds.width, bounds.height) / Math.max(image.width, image.height) +} + +describe('Windows ICO glyph fill', () => { + it('committed resources/build/icon.ico fills the canvas', () => { + const ico = readFileSync(join(buildDir, 'icon.ico')) + const frame = decodeIcoFrame(ico, largestIcoFrame(ico)) + expect(glyphFillFraction(frame)).toBeGreaterThanOrEqual(MIN_GLYPH_FILL_FRACTION) + }) + + it('regenerating from the macOS render fills the canvas', () => { + const sourcePng = readFileSync(join(buildDir, 'icon.png')) + const ico = buildWindowsIcoFromPng(sourcePng) + const frame = decodeIcoFrame(ico, largestIcoFrame(ico)) + expect(glyphFillFraction(frame)).toBeGreaterThanOrEqual(MIN_GLYPH_FILL_FRACTION) + }) +}) + +describe('trim pipeline', () => { + function solidSquareWithInset(canvas, glyph) { + const data = Buffer.alloc(canvas * canvas * 4) + const offset = Math.floor((canvas - glyph) / 2) + for (let y = 0; y < glyph; y++) { + for (let x = 0; x < glyph; x++) { + const idx = ((offset + y) * canvas + (offset + x)) * 4 + data[idx] = 200 + data[idx + 1] = 100 + data[idx + 2] = 50 + data[idx + 3] = 255 + } + } + return { width: canvas, height: canvas, data } + } + + it('finds the opaque glyph bounds and ignores transparent inset', () => { + const image = solidSquareWithInset(100, 60) + const bounds = findOpaqueBounds(image) + expect(bounds).toEqual({ minX: 20, minY: 20, maxX: 79, maxY: 79, width: 60, height: 60 }) + }) + + it('crops to the glyph then re-squares with a small margin', () => { + const image = solidSquareWithInset(100, 60) + const cropped = cropImage(image, findOpaqueBounds(image)) + expect(cropped.width).toBe(60) + const squared = squareWithMargin(cropped, 0.04) + // Glyph (60) plus ~4% margin per side keeps it near-full-bleed. + expect(glyphFillFraction(squared)).toBeGreaterThanOrEqual(0.9) + expect(squared.width).toBe(squared.height) + }) + + it('downscales without leaving the glyph undersized', () => { + const image = solidSquareWithInset(256, 200) + const filled = squareWithMargin(cropImage(image, findOpaqueBounds(image))) + const small = resizeImage(filled, 32, 32) + expect(small.width).toBe(32) + expect(glyphFillFraction(small)).toBeGreaterThanOrEqual(0.9) + }) +}) diff --git a/resources/build/icon.ico b/resources/build/icon.ico index 88093983a0d41f6a495bc8dfe60e8cf9d34f896f..d73c40f4af3b8088b935cab4beb448496031096b 100644 GIT binary patch literal 58131 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 literal 119952 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 PyFfxhf`j}W@8ACc%d%FP diff --git a/resources/icon-source/generate.sh b/resources/icon-source/generate.sh index d8377345a51..3ea4d72c78e 100755 --- a/resources/icon-source/generate.sh +++ b/resources/icon-source/generate.sh @@ -70,8 +70,14 @@ echo " -> resources/build/icon.png (1024x1024)" sips -s format png --resampleWidth 256 "$TMP_DIR/icon.icns" --out "$RESOURCES_DIR/icon.png" >/dev/null 2>&1 echo " -> resources/icon.png (256x256)" -# Generate .ico for Windows (proper ICO format with multiple sizes) -"$MAGICK_BIN" "$BUILD_DIR/icon.png" -define icon:auto-resize=256,128,64,48,32,16 "$BUILD_DIR/icon.ico" -echo " -> resources/build/icon.ico (multi-size ICO via ImageMagick)" +# Generate .ico for Windows. Icon Composer keeps the macOS safe-area inset in +# the 1024px render, but Windows scales the largest ICO frame down for the +# taskbar/"Open with" list without compensating, so the glyph looks small next +# to native apps (issue #5357). Delegate to the pngjs trim script so the +# committed ICO always matches it: it trims the transparent inset, re-squares +# with a small 2% margin, and emits the filled multi-size ICO. Node + pngjs are +# already repo dependencies, so this also works where ImageMagick is unavailable. +node "$PROJECT_DIR/config/scripts/trim-windows-icon-source.mjs" +echo " -> resources/build/icon.ico (trimmed, filled multi-size ICO)" echo "Done! Icons generated in resources/build/ and resources/"