Files

50 lines
999 B
Bash
Raw Permalink Normal View History

#!/bin/bash
# zoom.sh - Capture cropped region of screen
# Usage: zoom.sh X1 Y1 X2 Y2
# Returns base64 of the cropped region
export DISPLAY=:99
OUTPUT_DIR="/tmp/computer-use"
mkdir -p "$OUTPUT_DIR"
X1=$1
Y1=$2
X2=$3
Y2=$4
if [ -z "$X1" ] || [ -z "$Y1" ] || [ -z "$X2" ] || [ -z "$Y2" ]; then
echo "ERROR: Usage: zoom.sh X1 Y1 X2 Y2" >&2
exit 1
fi
TIMESTAMP=$(date +%s%N)
FULL_FILE="$OUTPUT_DIR/full_$TIMESTAMP.png"
CROP_FILE="$OUTPUT_DIR/crop_$TIMESTAMP.png"
# Take full screenshot
scrot -o "$FULL_FILE" 2>/dev/null
if [ ! -f "$FULL_FILE" ]; then
echo "ERROR: Failed to take screenshot" >&2
exit 1
fi
# Calculate crop dimensions
WIDTH=$((X2 - X1))
HEIGHT=$((Y2 - Y1))
# Crop using ImageMagick
convert "$FULL_FILE" -crop "${WIDTH}x${HEIGHT}+${X1}+${Y1}" +repage "$CROP_FILE"
if [ ! -f "$CROP_FILE" ]; then
echo "ERROR: Failed to crop screenshot" >&2
rm -f "$FULL_FILE"
exit 1
fi
# Output base64
base64 -w0 "$CROP_FILE"
# Cleanup
rm -f "$FULL_FILE" "$CROP_FILE"