Did you know Google runs a free and open image resizing service? I certainly didn’t.
While lazily poking around the Google+ HTML I found an interesting thing: for resizing post images on the fly, G+ uses an open API endpoint. That might come in handy at some point in the future when prototyping this or that, so jotting down some notes felt like a good idea.
If you know more about this API, let me know, please! (See the sidebar for options.)
A word of warning before I progress: I’ve spent ~45 minutes on both my experimentation and this here write-up, maybe an hour. You’ve been warned.
Base URL
https://images1-focus-opensocial.googleusercontent.com/gadgets/proxy
Parameters:
url
: original image URLcontainer
: must be “focus”¯\_(ツ)_/¯
refresh
: time (in seconds) to cache it on G’s serversresize_w
: width in pixelsresize_h
: height in pixels
You can either specify both resize_*
parameters or just one.
An example
Let’s resize that big 5831×1644 panorama picture I took in Istanbul a while ago.
Make it square, 300x300px and cache it for 30 days:
URL:
https://images1-focus-opensocial.googleusercontent.com/gadgets/proxy?url=https%3A%2F%2Ffiles.czm.io%2Ff%2Fblog-istanbul.jpg&container=focus&resize_w=300&resize_h=300&refresh=2592000
Make it 650px wide, keep the aspect ratio and cache the result for a year:
URL:
https://images1-focus-opensocial.googleusercontent.com/gadgets/proxy?url=https%3A%2F%2Ffiles.czm.io%2Ff%2Fblog-istanbul.jpg&container=focus&resize_w=650&refresh=31536000
Quirks
At least in Chrome, opening the URL in the browser will force the download of a p.txt
file (which is actually a JPG). Putting the URL in an <img>
tag is fine, tho. Or just use curl
to save it locally.