@@ -14,11 +14,18 @@ jobs:
1414 - name : Checkout repository
1515 uses : actions/checkout@v4
1616
17- - name : Install ImageMagick
18- run : sudo apt-get update && sudo apt-get install -y imagemagick
17+ - name : Install ImageMagick + PNG optimizer
18+ run : |
19+ sudo apt-get update
20+ sudo apt-get install -y imagemagick optipng
21+
22+ # Allow ImageMagick to read SVGs (Ubuntu blocks this by default)
23+ sudo sed -i 's/disable="read" pattern="SVG"/pattern="SVG"/' /etc/ImageMagick-6/policy.xml
1924
20- - name : Create output folders
25+ - name : Prepare output folders
2126 run : |
27+ rm -rf icons/png/*
28+ rm -rf icons/ico/*
2229 mkdir -p icons/png
2330 mkdir -p icons/ico
2431
@@ -27,21 +34,26 @@ jobs:
2734 for svg in icons/svg/*.svg; do
2835 base=$(basename "$svg" .svg)
2936
30- # PNG sizes
37+ echo "Processing $base.svg"
38+
39+ # PNG sizes (Windows + power-of-two)
3140 for size in 16 24 32 48 64 128 256; do
32- convert -background none "$svg" -resize ${size}x${size} "icons/png/${base}-${size}.png"
41+ convert -background none "$svg" -resize ${size}x${size} \
42+ "icons/png/${base}-${size}.png"
3343 done
3444
45+ # Optimize PNGs (lossless)
46+ optipng -o7 icons/png/${base}-*.png
47+
3548 # ICO (Windows-relevant sizes)
3649 convert \
3750 icons/png/${base}-16.png \
3851 icons/png/${base}-24.png \
3952 icons/png/${base}-32.png \
4053 icons/png/${base}-48.png \
41- icons/png/${base}-64.png \
42- icons/png/${base}-128.png \
4354 icons/png/${base}-256.png \
4455 "icons/ico/${base}.ico"
56+
4557 done
4658
4759 - name : Commit generated icons
0 commit comments