Генератор иконок для сайта

Генератор иконок для сайта

Сделал для сайта автоматизированное создание иконок типа favicon, которыми пользуются браузеры и устройства для своих нужд.

Я накидал небольшой скрипт, состоящий из двух функций png() и ico(). Функция png() берёт файл favicon.svg и преобразует его в PNG, указанных в массиве size, размеров. Функция ico() также берёт файл favicon.svg и преобразует его в формат ICO, который содержит в себе несколько размеров изображения.

favicon.sh
 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
36
37
38
#!/usr/bin/env -S bash -e
#
# 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/articles/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 )
file_svg='favicon.svg'
file_ico='favicon.ico'

rsvg="$( command -v rsvg-convert )"
convert="$( command -v convert )"
identify="$( command -v identify )"

png() {
  _check_file
  for i in "${size[@]}"; do
    ${rsvg} -w "${i}" -h "${i}" "${file_svg}" -o "favicon-${i}.png"
  done
}

ico() {
  _check_file
  ${convert} -density '256x256' -background 'transparent' "${file_svg}" -define 'icon:auto-resize' -colors '256' "${file_ico}"
  ${identify} "${file_ico}"
}

_check_file() {
  [[ -f "${file_svg}" ]] || { printf '%s does not exist!\n' "${file_svg}"; exit 1; }
}

"$@"

Использование

Для работы скрипта необходимо, чтобы в системе были установлены RSVG и #ImageMagick. Скрипт можно сохранить с произвольным именем, например, favicon.sh в директорию, где находится изображение favicon.svg. Далее, вызывать функции следующим образом:

Терминал
1
bash favicon.sh png
Терминал
1
bash favicon.sh ico

Скрипт ищет файл favicon.svg и преобразует его в необходимые изображения.

Авторы
Смотрите также
Мета
Лицензия
ID файла
UUID
Системный путь
Тип
Статистика
Количество слов
Время чтения
мин.