You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
928 B
Bash
34 lines
928 B
Bash
#!/bin/bash
|
|
|
|
INPUT_IMAGE="$1"
|
|
OUTPUT_TEMPLATE="$2"
|
|
|
|
# Check if arguments are provided
|
|
if [ -z "$INPUT_IMAGE" ] || [ -z "$OUTPUT_TEMPLATE" ]; then
|
|
echo "Usage: $0 <input_image> <output_template>"
|
|
echo "Example: $0 input.png tile_%d.png"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if input file exists
|
|
if [ ! -f "$INPUT_IMAGE" ]; then
|
|
echo "Error: Input file '$INPUT_IMAGE' not found"
|
|
exit 1
|
|
fi
|
|
|
|
TILE_WIDTH=$(( $(identify -format "%w" "$INPUT_IMAGE") / 4 ))
|
|
TILE_HEIGHT=$(identify -format "%h" "$INPUT_IMAGE")
|
|
|
|
for i in $(seq 0 3); do
|
|
X_OFFSET=$(( i * TILE_WIDTH ))
|
|
TEMP_FILE="_temp_${i}.png"
|
|
OUTPUT_FILE=$(printf "$OUTPUT_TEMPLATE" "$i")
|
|
|
|
magick "$INPUT_IMAGE" -crop "${TILE_WIDTH}x${TILE_HEIGHT}+${X_OFFSET}+0" +repage "$TEMP_FILE"
|
|
|
|
# Trim white background from each generated tile
|
|
magick "$TEMP_FILE" -fuzz 10% -trim +repage "$OUTPUT_FILE"
|
|
|
|
# Clean up temporary file
|
|
rm "$TEMP_FILE"
|
|
done |