#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # Script for Image Magick that writes the dss logo in png format # to stdout. set -u width=320 height=110 border=5 radius1=4 radius2=5 circle_y=90 arrow_y=70 text_x=128 text_y=55 pointsize=36 declare -a circle arrow rectangle text make_circles() { local inner='stroke black fill red circle' local outer='stroke black fill black circle' local num=1 local idx=0 local y=$circle_y local step x0 i j idx num for ((i = 0; i < 4; i++)); do step=$(((width / 4 + num) / (num + 1))) x0=$((border + width / 4 * i)) for ((j = 1; j <= $num; j++)); do x=$((x0 + j * $step)) circle[$idx]='-draw'; let idx++ circle[$idx]="$outer $x,$y,$((x + radius2)),$y"; let idx++ circle[$idx]='-draw'; let idx++ circle[$idx]="$inner $x,$y,$((x + radius1)),$y"; let idx++ done num=$((num * 2)) done #echo "${circle[@]}"; exit 0 } make_arrow() { local arrow_head='l -15,-5 +5,+5 -5,+5 +15,-5 z' local idx=0 local x0 x1 y arrow[$idx]='-draw'; let idx++ x0=$((3 * border)); x1=$((width - 2 * border)) y=$arrow_y arrow[$idx]="stroke white line $x0,$y $x1,$y"; let idx++ arrow[$idx]='-draw'; let idx++ x0=$((width - 2 * border)) arrow[$idx]="stroke white fill white path 'M $x0,$y $arrow_head'" #echo "${arrow[@]}"; exit 0 } make_rectangles() { local idx=0 local x x0 x1 y y0 y1 i red_green color rectangle[$idx]='-draw'; let idx++ x=$((width + 2 * border)) y=$((height + 2 * border)) rectangle[$idx]="stroke yellow fill yellow rectangle 0,0 $x,$y"; let idx++ for ((i = 0; i < 4; i++)); do rectangle[$idx]='-draw'; let idx++ red_green="$(printf '%02x' $(((3 - i) * 60)))" color="#${red_green}${red_green}ff" x0=$((border + i * width / 4)); x1=$((x0 + width / 4 - 1)) y0=$border; y1=$((y0 + height)) rectangle[$idx]="stroke $color fill $color rectangle $x0,$y0 $x1,$y1" let idx++ done #echo "${rectangle[@]}"; exit 0 } make_text() { text=(-pointsize $pointsize -draw \ "fill white text $text_x,$text_y DSS") #echo "${text[@]}"; exit 0 } make_rectangles make_arrow make_circles make_text convert -size $((width + 2 * border))x$((height + 2 * border)) \ -background none xc: \ "${rectangle[@]}" \ "${arrow[@]}" \ "${circle[@]}" \ "${text[@]}" \ png:-