You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.8 KiB

#!/bin/bash
# Constants
# SEED=20230920
SEED=0
# INPUT_FILE="${DIR}/arrangement_$SEED.txt"
DIR=/teamspace/studios/this_studio/out_sortcolors
INPUT_FILE="${DIR}/arrangement_grid.txt"
# OUTPUT_IMAGE="${DIR}/circle_composite_$SEED.png"
TYPE=circle
OUTPUT_IMAGE="${DIR}/${TYPE}_composite_grid.png"
9 months ago
DPI=150
CANVAS_SIZE=$((72*$DPI)) # 72 inches
9 months ago
CIRCLE_IMAGE="${DIR}/hsv/sorted_colors_circle.png"
KIND=umap
identify $CIRCLE_IMAGE
# PREP
echo "Building ops"
# Build the composite operations string
composite_ops=""
idx=1
while IFS=, read -r x y; do
# Translate so that (0,0) becomes the center of the canvas
fx=$(echo "$x*$DPI + $CANVAS_SIZE/2" | bc -l)
fy=$(echo "$CANVAS_SIZE/2 - $y*$DPI" | bc -l)
# Convert the final float values to integers
ix=$(printf "%.0f" "$fx")
iy=$(printf "%.0f" "$fy")
if [[ idx -eq 42 ]]; then
9 months ago
CIRCLE_IMAGE="${DIR}/hsv/sorted_colors_${TYPE}.png"
else
9 months ago
idx_str=$(printf "%04d" "$idx")
CIRCLE_IMAGE="${DIR}/${KIND}/${idx_str}_sorted_colors_${TYPE}.png"
# CIRCLE_IMAGE="${DIR}/hsv_sorted_colors_${TYPE}.png"
fi
# Add to the composite operations string
9 months ago
composite_ops="$composite_ops \( $CIRCLE_IMAGE \) -resize 50% -compose Over -geometry +$ix+$iy -composite"
idx=$((idx+1))
done < $INPUT_FILE
# COMPOSITE
echo "Compositing"
# Use convert with the built composite operations string
eval "convert -units PixelsPerInch \
-size ${CANVAS_SIZE}x${CANVAS_SIZE} xc:white \
$composite_ops \
-density $DPI \
$OUTPUT_IMAGE"
echo "Saved $OUTPUT_IMAGE"
# DEBUG
# eval "convert -units PixelsPerInch \
# $OUTPUT_IMAGE \
# \( ${DIR}/arrangement_$SEED.png -evaluate Multiply 0.5 \) \
# -gravity center -composite \
# -density $DPI \
# /tmp/debug.png"
# open /tmp/debug.png