Instagram recently added a feature to post up to 10 photos side by side. I saw someone cleverly used it to post a single panoramic photo. You split the panorama into square photos and then post them all at once to Instagram, which then arranges them side by side. Here's a quick & dirty script I wrote to split up my own panoramas into square photos. It uses a few Mac commands to get the size of the image, and ImageMagick to break up the images into smaller ones:
#!/bin/bash if [ -z "$1" ]; then echo "Usage: $0 filename.jpg" exit fi filename="$1" # Original image size width=$(mdls -raw -name kMDItemPixelWidth "$filename") height=$(mdls -raw -name kMDItemPixelHeight "$filename") # Each of the square pieces will be 1/Nth the width N=$[$width / $height] if [ $N -gt 10 ]; then N=10; fi # maximum 10 allowed by instagram size=$[$width / N] if [ $height -lt $size ]; then size=$height; fi # Use the center of the x,y range x_offset=$[$[$width - $size * N] / 2] y_offset=$[$[$height - $size] / 2] echo "$filename : ${width}x${height}, $N parts" if [ $x_offset -gt 0 ]; then echo "Wide image; truncating $[2 * $x_offset] pixels" else x_offset=0 fi if [ $y_offset -gt 0 ]; then echo "Tall image; truncating $[2 * $y_offset] pixels" else y_offset=0 fi for part in $(seq $[$N - 1] -1 0); do crop="${size}x${size}+$[${x_offset} + ${size}*${part}]+${y_offset}" echo " part $part : $crop" convert "$filename" -crop "$crop" $part.jpg done
I'm sure there are lots of things I could do better but I just wanted to get something working quickly.
Labels: howto
2 comments:
Subscribe to:
Post Comments (Atom)
interesting! now that instagram lets you post non-square photos, though, including panos, i wonder if there's any value to this other than the cool hack factor. :P
@Ryan: yes! If you post a pano it will appear really small until you pinch-zoom in, whereas if you post it this way it will appear zoomed in, and you can slide your finger to see the rest of the image. It depends on which UI you want.
Post a Comment