Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum
Eine favicon.ico selbst erstellen
→ Vorbemerkung
→ Installation
→ Formate
→ Bash-Script
→ Zusammenfassung
Für die eigene Internetpräsenz ist es erforderlich, ein passendes Bild zu erstellen (favicon.ico), das als besonderes Kennzeichen wahrgenommen wird, z.B. im Browser neben dem Titel der Internetseite. Die Dateiendung .ico kennzeichnet einen Container, in dem mehrere Bilder in verschiedenen Größen zusammen gefasst gespeichert werden.
Es ist nicht unbedingt notwendig, Online-Generatoren zur Erstellung einer .ico zu nutzen.
Für die Extraktion der in einer .ico enthaltenen Bilder (.png), für das Zusammenfügen mehrerer .png zu einer favicon.ico kann das Hilfsprogramm icotool und für das Konvertieren einer favicon-muster.png in mehrere Formate kann das Hilfsprogramm convert genutzt werden.
Unter Linux erfolgt die Installation aus den Paketquellen:
test@testgeraet:~$ sudo apt install icoutils imagemagick
Üblicherweise werden folgende Formate genutzt: 16x16, 32x32, 48x48, 64x64, 128x128. Liegt eine Musterdatei als .png vor, lassen sich mit Hilfe des folgenden Scripts, die Formate erstellen und als favicon.ico zusammenfügen.
Liegt bereits eine favicon.ico vor, können die Bilder mit icotool separiert gespeichert werden, z.B. um zu prüfen, inwieweit alle Formate abgedeckt sind.
Das folgende Script vereinfacht die Extraktion aus einer ico, das Zusammenfügen zu einer ico und das Konvertieren einer Muster-Datei in mehrere Formate. Bedingungen:
1. Die Musterdatei heißt als Vorgabe im Script favicon-muster.png.
2. Muster für Namen der einzeln png: favicon_Nr._Format.Dateiendung
x
### Mit Hilfe von KI erstellt ###
### Voraussetzung ###
## Installation von icoutils für icotool und imagemagick mit convert##
# sudo apt install icoutils imagemagick#
echo "Was möchtest du tun?"
echo "1) PNGs aus ICO extrahieren"
echo "2) favicon.ico aus PNGs erstellen"
echo "3) PNG-Dateien in passende Größen konvertieren (aus favicon-muster.png)"
read -p "Auswahl (1, 2 oder 3): " auswahl
case "$auswahl" in
1)
echo "Extrahiere PNG-Dateien aus *.ico..."
icotool -x *.ico
if ls favicon_*x*.png >/dev/null 2>&1; then
echo "PNG-Dateien wurden erfolgreich extrahiert."
else
echo "Keine PNG-Dateien extrahiert. Bitte überprüfe, ob *.ico-Dateien vorhanden sind."
fi
;;
2)
echo "Erstelle favicon.ico aus PNG-Dateien..."
required_pngs=(
favicon_1_128x128x32.png
favicon_2_64x64x32.png
favicon_3_48x48x32.png
favicon_4_32x32x32.png
favicon_5_16x16x32.png
)
fehlende_dateien=0
for f in "${required_pngs[@]}"; do
if [[ ! -f "$f" ]]; then
echo "Fehlende Datei: $f"
fehlende_dateien=1
fi
done
if [[ $fehlende_dateien -eq 1 ]]; then
echo "Erstellung abgebrochen. Bitte stelle sicher, dass alle benötigten PNG-Dateien vorhanden sind."
exit 1
fi
icotool -c -o favicon.ico "${required_pngs[@]}"
echo "favicon.ico wurde erfolgreich erstellt."
;;
3)
if [[ ! -f "favicon-muster.png" ]]; then
echo "Die Ursprungsdatei favicon-muster.png wurde nicht gefunden. Bitte im Verzeichnis ablegen."
exit 1
fi
echo "Konvertiere favicon-muster.png in verschiedene Größen..."
declare -A sizes=(
[favicon_1_128x128x32.png]=128
[favicon_2_64x64x32.png]=64
[favicon_3_48x48x32.png]=48
[favicon_4_32x32x32.png]=32
[favicon_5_16x16x32.png]=16
)
for filename in "${!sizes[@]}"; do
size=${sizes[$filename]}
convert -resize ${size}x${size} favicon-muster.png "$filename"
echo "Erstellt: $filename"
done
echo "Alle Größen wurden erfolgreich erstellt."
;;
*)
echo "Ungültige Auswahl. Bitte wähle 1, 2 oder 3."
exit 1
;;
esac
Das Script speichern beispielsweise als build-favicons.sh und ausführbar machen.
Mit dem Script können einige Arbeitsschritte vereinfacht erfolgen, sodass eine Nutzung von Online-Generatoren für die Erstellung einer favicon.ico nicht zwingend erforderlich wird.
Wolfgang Kirk
Veröffentlicht: 2025-07-21, 13:00 Uhr aktualisiert: