X-Git-Url: https://git.armaanb.net/?p=logo.git;a=blobdiff_plain;f=svg2img;h=41bad8846a28252130c2eb8aa43641170a7f1348;hp=af2e242bf73d12a4cbc3caf1c4998d8d3d4f1c60;hb=HEAD;hpb=eb33c93728ee4a70adef55ab6a3c967fafd4c9d5 diff --git a/svg2img b/svg2img index af2e242..41bad88 100755 --- a/svg2img +++ b/svg2img @@ -1,26 +1,149 @@ -#!/usr/bin/env bash +#!/bin/sh +# Converts my logo to various formats from a template SVG +# Armaan Bhojwani 2021 -if [[ (! -d "png") || (${1} == "png") ]]; then - mkdir -p png/1024 png/512 png/256 png/128 - - for PHOTO in svg/*; do - BASE=$(basename $PHOTO | cut -d '.' -f 1) - inkscape -w 1024 -h 1024 "$PHOTO" --export-filename png/1024/${BASE}.png - inkscape -w 512 -h 512 "$PHOTO" --export-filename png/512/${BASE}.png - inkscape -w 256 -h 256 "$PHOTO" --export-filename png/256/${BASE}.png - inkscape -w 128 -h 128 "$PHOTO" --export-filename png/128/${BASE}.png - done -fi - -[[ ${1} == "png" ]] && exit 0 +set -e -rm -rf ${1} +SIZES="2048 1024 512 256 128 64" +A_SIZES="10 15 20 25 30 35 40 45 50 55 60" -for PAT in $(find "png" -type d); do - mkdir $(echo $PAT | sed "s/png/${1}/g") -done +for arg in ${@};do + [ -z ${arg} ] && echo "Please provide an output format!" && exit 1 + + [ ${arg} = "svg" ] && find . -name *.svg -not -path "./template/*" \ + -exec rm -v {} \; + + if [ ! -d "square/svg" ] || [ ! -d "circle/svg" ] || [ ${arg} = "svg" ]; then + echo "Generating SVGs" + for SHAPE in square circle; do + mkdir -p ${SHAPE}/svg + + sed -e 's/STROKE/stroke="#00ffbf"/g' \ + -e 's/FILL/#212121/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-color-dark.svg + + sed -e 's/STROKE/stroke="#00ffbf"/g' \ + -e 's/FILL/#fff/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-color-white.svg + + sed -e 's/STROKE/stroke="#00ffbf"/g' \ + -e 's/FILL/none/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-color-trans.svg + + sed -e 's/STROKE/stroke="#212121"/g' \ + -e 's/FILL/#00ffbf/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-dark-color.svg + + sed -e 's/STROKE/stroke="#212121"/g' \ + -e 's/FILL/#fff/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-dark-white.svg + + sed -e 's/STROKE/stroke="#212121"/g' \ + -e 's/FILL/none/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-dark-trans.svg + + sed -e 's/STROKE/stroke="#fff"/g' \ + -e 's/FILL/#00ffbf/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-white-color.svg + + sed -e 's/STROKE/stroke="#fff"/g' \ + -e 's/FILL/#212121/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-white-dark.svg + + sed -e 's/STROKE/stroke="#fff"/g' \ + -e 's/FILL/none/g' template/${SHAPE}.svg \ + > ${SHAPE}/svg/logo-${SHAPE}-white-trans.svg + done + fi + + [ ${arg} = "svg" ] && exit 0 + + [ ${arg} = "png" ] && find . -name *.png -not -name ./logo.png \ + -exec rm -v {} \; + + if [ ! -d "square/png" ] || [ ! -d "circle/png" ] || [ ${arg} = "png" ]; then + echo "Generating PNGs" + for SHAPE in square circle; do + set -- $SIZES + for i in $@; do + mkdir -p ${SHAPE}/png/${i} + done + + for i in $@; do + for SVGIN in square/svg/*; do + BASE=$(basename ${SVGIN} | cut -d '.' -f 1) + inkscape -w ${i} -h ${i} ${SVGIN} --export-filename \ + square/png/${i}/${BASE}-${i}.png + done + + for SVGIN in circle/svg/*; do + BASE=$(basename ${SVGIN} | cut -d '.' -f 1) + inkscape -w ${i} -h ${i} ${SVGIN} --export-filename \ + circle/png/${i}/${BASE}-${i}.png + done + done + done + fi + + [ ${arg} = "png" ] && exit 0 + + if [ ${arg} = "ascii" ]; then + echo "Generating ASCII art" + find . -name *ascii.txt -exec rm -v {} \; + for SHAPE in square circle; do + set -- $A_SIZES + for i in $@; do + mkdir -p ${SHAPE}/ascii/${i} + + for PNGIN in circle/png/2048/*; do + BASE=$(basename ${PNGIN} | cut -d '.' -f 1) + jp2a --height=${i} ${PNGIN} > circle/ascii/${i}/${BASE}-${i}.ascii.txt + done + + for PNGIN in square/png/2048/*; do + BASE=$(basename ${PNGIN} | cut -d '.' -f 1) + jp2a --height=${i} ${PNGIN} > square/ascii/${i}/${BASE}-${i}.ascii.txt + done + done + done + exit 0 + fi + + if [ ${arg} = "unicode" ]; then + echo "Generating Unicode" + find . -name *unicode.txt -exec rm -v {} \; + for SHAPE in square circle; do + set -- $A_SIZES + for i in $@; do + mkdir -p ${SHAPE}/unicode/${i} + + for PNGIN in circle/png/2048/*; do + BASE=$(basename ${PNGIN} | cut -d '-' -f -4) + chafa -c none -s ${i}x${i} ${PNGIN} \ + > circle/unicode/${i}/${BASE}-${i}.unicode.txt + done + + for PNGIN in square/png/2048/*; do + BASE=$(basename ${PNGIN} | cut -d '-' -f -4) + chafa -c none -s ${i}x${i} ${PNGIN} \ + > square/unicode/${i}/${BASE}-${i}.unicode.txt + done + done + done + exit 0 + fi + + for SHAPE in square circle; do + find . -name '*.${arg}' -exec rm -v {} \; + + set -- $SIZES + for i in $@; do + mkdir -p ${SHAPE}/${arg}/${i} + done -for PAT in $(find "png" -type f); do - BASE=$(echo $PAT | sed "s/png/${1}/g") - convert -verbose $PAT $BASE + for PAT in $(find . -name '*.png' -not -name ./logo.png); do + echo "Generating ${arg}s" + convert -verbose ${PAT} $(printf "%s" "$PAT" | sed "s/\.png/.$arg/g") + done + done done