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