Skip to content

Commit fb2b552

Browse files
authored
Enhance ImageMagick setup with PNG optimizer
1 parent c56a4e5 commit fb2b552

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

‎.github/workflows/generate-icons.yml‎

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)