Сделал для сайта автоматизированное создание иконок типа favicon
, которыми пользуются браузеры и устройства для своих нужд.
Я накидал небольшой скрипт, состоящий из двух функций png()
и ico()
. Функция png()
берёт файл favicon.svg
и преобразует его в PNG, указанных в массиве size
, размеров. Функция ico()
также берёт файл favicon.svg
и преобразует его в формат ICO, который содержит в себе несколько размеров изображения.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| #!/usr/bin/env -S bash -eu
# -------------------------------------------------------------------------------------------------------------------- #
# FAVICON.ICO
# Generating 'favicon.ico' file.
# -------------------------------------------------------------------------------------------------------------------- #
# @package Bash
# @author Kai Kimera <mail@kai.kim>
# @copyright 2023 Library Online
# @license MIT
# @version 0.1.0
# @link https://lib.onl/ru/2021/05/841ba281-a22b-55ee-b97d-251a5dc111d8/
# -------------------------------------------------------------------------------------------------------------------- #
size=( 16 24 32 48 64 72 80 96 128 144 152 167 180 192 196 256 300 512 )
svg='favicon.svg'
ico='favicon.ico'
png() {
_check_file
for i in "${size[@]}"; do
rsvg-convert -w "${i}" -h "${i}" "${svg}" -o "favicon-${i}.png"
done
}
ico() {
_check_file
convert -density '256x256' -background 'transparent' "${svg}" -define 'icon:auto-resize' -colors '256' "${ico}"
identify "${ico}"
}
_check_file() {
[[ -f "${svg}" ]] || { printf '%s does not exist!\n' "${svg}"; exit 1; }
}
"$@"
|
Для работы скрипта необходимо, чтобы в системе были установлены RSVG и #ImageMagick. Скрипт можно сохранить с произвольным именем, например, favicon.sh
в директорию, где находится изображение favicon.svg
. Далее, вызывать функции следующим образом:
Скрипт ищет файл favicon.svg
и преобразует его в необходимые изображения.