]> git.armaanb.net Git - logo.git/blob - svg2img
56915d0b252b9f5fefbc9f73af03d7127ef2f6f7
[logo.git] / svg2img
1 #!/usr/bin/env bash
2 # Converts my logo to various formats from a template SVG
3 # Armaan Bhojwani 2021
4
5 SIZES=(2048 1024 512 256 128 64)
6 A_SIZES=(10 15 20 25 30 35 40 45 50 55 60)
7
8 [[ -z ${1} ]] && echo "Please provide an output format!" && exit 1
9
10 [[ ${1} == "svg" ]] && find . -name *.svg -not -path "./template/*" -exec rm -v {} \;
11
12 if [[ (! -d "square/svg" || ! -d "circle/svg") || (${1} == "svg") ]]; then
13   echo "Generating SVGs"
14   for SHAPE in square circle; do
15     mkdir -pv ${SHAPE}/svg
16
17     sed -e 's/STROKE/stroke="#00ffbf"/g' \
18       -e 's/FILL/#212121/g' template/${SHAPE}.svg \
19       > ${SHAPE}/svg/logo-${SHAPE}-color-dark.svg
20
21     sed -e 's/STROKE/stroke="#00ffbf"/g' \
22       -e 's/FILL/#fff/g' template/${SHAPE}.svg \
23       > ${SHAPE}/svg/logo-${SHAPE}-color-white.svg
24
25     sed -e 's/STROKE/stroke="#00ffbf"/g' \
26       -e 's/FILL/none/g' template/${SHAPE}.svg \
27       > ${SHAPE}/svg/logo-${SHAPE}-color-trans.svg
28
29     sed -e 's/STROKE/stroke="#212121"/g' \
30       -e 's/FILL/#00ffbf/g' template/${SHAPE}.svg \
31       > ${SHAPE}/svg/logo-${SHAPE}-dark-color.svg
32
33     sed -e 's/STROKE/stroke="#212121"/g' \
34       -e 's/FILL/#fff/g' template/${SHAPE}.svg \
35       > ${SHAPE}/svg/logo-${SHAPE}-dark-white.svg
36
37     sed -e 's/STROKE/stroke="#212121"/g' \
38       -e 's/FILL/none/g' template/${SHAPE}.svg \
39       > ${SHAPE}/svg/logo-${SHAPE}-dark-trans.svg
40
41     sed -e 's/STROKE/stroke="#fff"/g' \
42       -e 's/FILL/#00ffbf/g' template/${SHAPE}.svg \
43       > ${SHAPE}/svg/logo-${SHAPE}-white-color.svg
44
45     sed -e 's/STROKE/stroke="#fff"/g' \
46       -e 's/FILL/#212121/g' template/${SHAPE}.svg \
47       > ${SHAPE}/svg/logo-${SHAPE}-white-dark.svg
48
49     sed -e 's/STROKE/stroke="#fff"/g' \
50       -e 's/FILL/none/g' template/${SHAPE}.svg \
51       > ${SHAPE}/svg/logo-${SHAPE}-white-trans.svg
52   done
53 fi
54
55 [[ ${1} == "svg" ]] && exit 0
56
57 [[ ${1} == "png" ]] && find . -name *.png -exec rm -v {} \;
58
59 if [[ (! -d "square/png" || ! -d "circle/png") || (${1} == "png") ]]; then
60   echo "Generating PNGs"
61   for SHAPE in square circle; do
62     for i in ${SIZES[@]}; do
63       mkdir -pv ${SHAPE}/png/${i}
64     done
65
66     for i in ${SIZES[@]}; do
67       for SVGIN in square/svg/*; do
68         BASE=$(basename ${SVGIN} | cut -d '.' -f 1)
69         inkscape -w ${i} -h ${i} ${SVGIN} --export-filename \
70           square/png/${i}/${BASE}-${i}.png
71       done
72
73       for SVGIN in circle/svg/*; do
74         BASE=$(basename ${SVGIN} | cut -d '.' -f 1)
75         inkscape -w ${i} -h ${i} ${SVGIN} --export-filename \
76           circle/png/${i}/${BASE}-${i}.png
77       done
78     done
79   done
80 fi
81
82 [[ ${1} == "png" ]] && exit 0
83
84 if [[ ${1} == "ascii" ]]; then
85   echo "Generating ASCII art"
86   find . -name *ascii.txt -exec rm -v {} \;
87   for SHAPE in square circle; do
88     for i in ${A_SIZES[@]}; do
89       mkdir -pv ${SHAPE}/ascii/${i}
90
91       for PNGIN in circle/png/2048/*; do
92         BASE=$(basename ${PNGIN} | cut -d '.' -f 1)
93         jp2a --height=${i} ${PNGIN} > circle/ascii/${i}/${BASE}-${i}.ascii.txt
94       done
95
96       for PNGIN in square/png/2048/*; do
97         BASE=$(basename ${PNGIN} | cut -d '.' -f 1)
98         jp2a --height=${i} ${PNGIN} > square/ascii/${i}/${BASE}-${i}.ascii.txt
99       done
100     done
101   done
102   exit 0
103 fi
104
105 if [[ ${1} == "unicode" ]]; then
106   echo "Generating Unicode"
107   find . -name *unicode.txt -exec rm -v {} \;
108   for SHAPE in square circle; do
109     for i in ${A_SIZES[@]}; do
110       mkdir -pv ${SHAPE}/unicode/${i}
111
112       for PNGIN in circle/png/2048/*; do
113         BASE=$(basename ${PNGIN} | cut -d '-' -f -4)
114         chafa -c none -s ${i}x${i} ${PNGIN} \
115           > circle/unicode/${i}/${BASE}-${i}.unicode.txt
116       done
117
118       for PNGIN in square/png/2048/*; do
119         BASE=$(basename ${PNGIN} | cut -d '-' -f -4)
120         chafa -c none -s ${i}x${i} ${PNGIN} \
121           > square/unicode/${i}/${BASE}-${i}.unicode.txt
122       done
123     done
124   done
125   exit 0
126 fi
127
128 for SHAPE in square circle; do
129   find . -name *.${1} -exec rm -v {} \;
130
131   for i in ${SIZES[@]}; do
132     mkdir -pv ${SHAPE}/${1}/${i}
133   done
134
135   while read PAT; do
136     echo "Generating ${1}s"
137     convert -verbose ${PAT} ${PAT//png/${1}}
138   done < <(find -name *.png)
139 done