Skip to content

Keep thin strokes when downscaling and rank sizeless touch icons as 180px - #1

Merged
markvaneijk merged 3 commits into
mainfrom
improve-icon-quality
Sep 25, 2026
Merged

markvaneijk merged 3 commits into
mainfrom
improve-icon-quality

Conversation

@markvaneijk

@markvaneijk markvaneijk commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Sharper downscales. ImagickConverter::toSquare() used thumbnailImage(), which for large reductions (e.g. 192 → 32px) point-samples the image before resizing. A 1px stroke vanished completely in 64 of 192 horizontal positions. It now resizes with a Lanczos filter and strips metadata.
  • Touch icon ranking. An apple-touch-icon without a sizes attribute had no size hint, so a sizes="32x32" tab icon outranked a 180px touch icon. Sizeless touch icons now count as 180px.
  • Laravel 13. illuminate/* widened to ^13.0, with Testbench 11 and Pest 4/5 allowed in dev.

CI

  • guzzlehttp/guzzle is now a real requirement: the package calls Laravel's HTTP client, and CI on Laravel 10–12 failed without it (it was failing on main too).
  • The AVIF conversion case skips when ImageMagick has no AVIF encoder, as on the GitHub runner.
  • Matrix now covers Laravel 13 on PHP 8.3 and 8.4. All jobs pass.

Tests

  • New converter test for a 1px stroke; 3 of its 4 cases fail on the old converter.
  • New parser test for sizeless touch icons.
  • Full suite passes on Laravel 13.33 / Testbench 11 / Pest 5 (32 tests).

🤖 Generated with Claude Code

markvaneijk and others added 3 commits September 25, 2026 18:11
…80px

thumbnailImage point-samples large reductions before resizing, which
dropped a one pixel stroke in a third of all positions going from 192 to
32px; resize with Lanczos instead. An apple-touch-icon without a sizes
attribute now counts as 180px so it outranks a small tab icon. Widens
illuminate/* to ^13.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nnot encode it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@markvaneijk
markvaneijk merged commit cb7316a into main Sep 25, 2026
8 checks passed
@markvaneijk
markvaneijk deleted the improve-icon-quality branch September 25, 2026 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant