Last night I was working on the "Resizing Images" code I hoped to post today, and realized that I missed an important bit of data all the way back in Step 4 in my original import photos script
. I forgot to get Rotation
information about each photo. Flickr lets you rotate a photo after you've uploaded it, which is especially handy for cell phone images that aren't easy to rotate before you upload. Because I grabbed all of my original photos, I got the non-rotated versions. Luckily, the Flickr API lets you know how many degrees you rotated a photo so I just needed to whip up a script to grab that info and actually rotate my non-rotated originals.
The first thing I did was add a Rotation
field to the photos
table. That looks something like this:
mysql> ALTER TABLE photos ADD COLUMN Rotation INT NOT NULL;
And here's the script I threw together to rotate any images that needed it: rotate-any-photos.php
. One thing to note is that Flickr's rotation is clockwise
, and PHP's
function rotates counterclockwise
. So I needed to make the Flickr degrees negative to compensate. I also copied the original file (using Flickr's
naming convention), and then saved the rotated image to the original file name. Managing filenames is turning into a pain, but I think this will work ok.
This script rotated 66 photos for me. Now, up next (hopefully): resizing images.