
Resize.ly – Images resized, responsive, and retina ready - jsingleton
https://resize.ly/#
======
leni536
My acid test for resizing (downscaling to be more precise):

[http://www.4p8.com/eric.brasseur/gamma-1.0-or-2.2.png](http://www.4p8.com/eric.brasseur/gamma-1.0-or-2.2.png)

The resize.ly version (2x downscaled):

[http://resize.ly/256x128/http://www.4p8.com/eric.brasseur/ga...](http://resize.ly/256x128/http://www.4p8.com/eric.brasseur/gamma-1.0-or-2.2.png)

It fails horribly for me. Most software fails too (try to downscale the
original in your favorite browser!), but this somehow ruins the base
background gray too somehow.

Sorry for the test image being a little harsh, it's not mine (also some
reading material how downscaling should be implemented):

[http://www.4p8.com/eric.brasseur/gamma.html](http://www.4p8.com/eric.brasseur/gamma.html)

~~~
mrbig4545
Nice one for that, I didn't know this existed!

seems I pass this one ok,
[https://thisaintnews.com/view/picture/138385/downscale-
test](https://thisaintnews.com/view/picture/138385/downscale-test)

Thanks to [https://metacpan.org/pod/Imager](https://metacpan.org/pod/Imager)

Although I passed this one no problems, I find animated gifs to be the worst
thing to resize, especially the ones where the changes are part of a layer
over another layer

e.g. look at this one in gimp/photoshop

[https://thisaintnews.com/static/user/pics/1218067200/1218395...](https://thisaintnews.com/static/user/pics/1218067200/1218395289-sonic.gif)

layer two is just enough to cover layer one and make the hand move, the rest
is transparent. but at least the layers are the same size

some animated gifs have the new layer not the same canvas size as the layer
underneath, so you have to adjust the layer offsets correctly or they end up
all over the place

Infact I have a few evil gifs for testing this

[https://thisaintnews.com/view/picture/138386/test-
gif-1](https://thisaintnews.com/view/picture/138386/test-gif-1)

[https://thisaintnews.com/view/picture/137264/test-
gif-2](https://thisaintnews.com/view/picture/137264/test-gif-2)

[https://thisaintnews.com/view/picture/137265/test-
gif-3](https://thisaintnews.com/view/picture/137265/test-gif-3)

[https://thisaintnews.com/view/picture/138387/test-
gif-4](https://thisaintnews.com/view/picture/138387/test-gif-4)

I can't remember the exact differences, but I do remember they go from easy to
hard to resize correctly

~~~
leni536
I don't know what am I supposed to see in your test. I see the image in its
original resolution but much darker.

~~~
mrbig4545
That it works. Those gifs have weird layouts and transparency things going on,
and to get them to scale correctly is tricky.

I guess what I was getting at is they're my acid test for image scaling

edit: also I mean the smaller image, on the left of the big one. The big one
is probably a copy of the original

~~~
leni536
Oh I see. For the png it's darker then my original (both the copy of the
original and the downscaled), but the text reads "RULES", so that's something.

------
mtmail
I'm in the market for such a solution and it's interesting how many services
go stale or miscalculate their bandwidth costs (if they offer hosting) and
close.

Resize.ly is copyright 2013, still in beta and offer unlimited for $9.

[http://imagefly.io/](http://imagefly.io/) looks a bit more grown up but it's
copyright 2013 as well, last blog post over two years ago, last tweet over a
year ago.

[http://6px.io/](http://6px.io/) seems more active.

I'm tending towards [http://www.imgix.com/](http://www.imgix.com/)

All solve resizing-as-service, I just want to make sure to use a service
that's still around in a couple of years for my projects.

~~~
reasonishy
Alternative:

* Spin up a VPS somewhere for a few dollars a month.

* Install thumbor

~~~
boyter
Sounds good till you get to maintenance and scaling. Thumbor isn't as install
and forget if you value being able to recreate the environment from scratch,
scale out, rotate and secure the keys, solve tmp directory issues, ensure
availability etc...

Having just finished several months of working with and tweaking thumbor for a
large volume website I can see how just paying for a service would be
appealing.

~~~
mryan
Would you mind sharing some detail about the issues you had with tmp dirs and
availability? I deployed Thumbor a few months ago and it's been pretty much
install and forget. I'm curious about what issues I might have in future as it
scales.

~~~
boyter
Sure. For the record the Thumbor cluster I was working on needed to have 100%
uptime and be configured to mitigate any potentially DDoS situation even if
the secret key was leaked. It also needed facial detection and GIF (animation)
resizing support.

The tmp directory is never emptied unless you restart the machine. So to get
around this you have to write a cron job to remove the older downloaded and
resized images. However in my load tests this caused issues with Thumbor and
so I ended up having the cron job only delete files over a certain age.
However this still leaves the possibility that Thumbor could fill up the
entire disk and crash the machine.

Other issues were having the ability to rotate the Thumbor key. This is
somewhat supported by Thumbor, in that the previous keys images will still be
available but the key rotation is not done for you. I was using AWS so stored
the key in a protected s3 bucket and gave roles access to pull the key and
when it detected it was modified restart Thumbor.

The last an main issue was the ability to spin up a new version of Thumbor
itself. In the time it took me to get it from development through to
production the dependancies changed so much that facial detection broke
halfway though. I fixed this initially by freezing the pip dependancies but
then the underlying dependancies caused issue at a later day. In short I was
unable to spin up a new version which was identical to the previous. Generally
were I work we tear down and spin up fresh instances all the time so this was
an issue. We resolved this by installing Thumbor in a docker container.

Don't get me wrong. A big fan of Thumbor and it was the right solution for
what I needed to do but these issues really made myself and others considering
paying a 3rd party for a while.

~~~
mryan
Thanks for elaborating, I appreciate it. I don't think my installation is
getting enough load to see these tmp issues yet, but good to know what I might
have to deal with in future. I agree that with so many dependencies, Thumbor
is a great candidate for deploying with Docker.

Btw, I didn't realise you were the searchcode.com guy, great site!

~~~
boyter
If you happen to restart now and then it shouldn't be a huge issue.

Yes thats me! Thank you!

------
3lux
For an open source alternative written in Go, with a Dockerfile to make
deployments super easy see:
[https://github.com/pressly/imgry](https://github.com/pressly/imgry)

We use it to scale 10million images / day across 3 c3.large boxes with ave
response time of 120ms.

------
jsingleton
I didn't expect this to get so much attention or I'd have written some
context. I came across this while researching solutions to the old thumbnails
problem. It doesn't look like it took off or is maintained but I thought it
was interesting.

Image resizing is a hard problem. At a place I used to work at we wrote a
custom distributed image thumbnail generation system for user supplied images.
It was pretty complex and used a database and pub/sub message queueing to
propagate changes from a SAN file system. The main issue was that the
underlying image libraries weren't suited to running on a web server. It
leaked memory like mad. This resulted in layers of sophisticated monitoring
and automatic restart systems being built on top.

It shouldn't have to be this hard. If a progressive format like JPEG2000 or
WebP takes off then browsers can just download enough data to fill whatever
pixels they need to fill.

I have a lot of other thoughts on this but they can wait for a blog post. If
anyone is interested?

------
darrennix
We switched to Cloudinary.com a few months ago. We're in love with them. They
have a slew of integration libraries and support things like document to image
conversion out of the box.

------
lewisl9029
Anyone aware of any promising client-side solutions for responsive images?

I'm hoping to see something like the picture element suggested here:

[http://www.smashingmagazine.com/2011/11/html5-semantics/](http://www.smashingmagazine.com/2011/11/html5-semantics/)

<picture alt="angry pirate">

    
    
       <source src=hires.png media="min-width:800px">
    
       <source src=midres.png media="min-width:480px">
    
       <source src=lores.png>
    
          <!-- fallback for browsers without support -->
    
          <img src=midres.png alt="angry pirate">
    

</picture>

Would something like this be possible to implement with React or Web
Components? Or will we have to wait for HTML6?

In my opinion, responsive images really shouldn't be a server-side concern,
much less something that should require a third party service.

~~~
acdha
<picture> is available in about half of the shipped browsers
([http://caniuse.com/#search=picture](http://caniuse.com/#search=picture)) and
there's a robust polyfill available:
[https://github.com/scottjehl/picturefill](https://github.com/scottjehl/picturefill)

~~~
lewisl9029
Wow. This is even more exactly what I was looking for. =)

The polyfill looks amazing too. Looks like it polyfills both the picture tag
itself as well as the srcset property on img that mrbig4545 mentioned.

~~~
acdha
Yeah, I prefer <picture> for two reasons – being able to gracefully use new
image formats and being able to do art-direction type changes using media
queries – but the great thing about the polyfill is that you're not forced to
pick one.

------
rndn
A couple of stupid questions: (1) Aren't there already several providers of
this kind of service? (2) If so, what does this service claim to do better?
(3) How is image scaling hard enough to justify a business model?

~~~
leni536
Image scaling _is_ hard, too bad that these services don't do it actually
better than anybody else (see my other comment).

------
manigandham
[http://cloudinary.com](http://cloudinary.com) is the best at this. Just look
at their customers list. They also handle video just as seamlessly and have a
pretty generous free tier with a great control panel and useful manipulations
(like recognizing faces). We've been using them for a while and everything has
been perfect.

[http://rsz.io/](http://rsz.io/) is another great service that's free.

You can use your own CDN in front of both to save costs and use your own
bandwidth.

------
mrbig4545
failed hard on this gif

source
[https://thisaintnews.com/static/user/pics/1438214400/1438778...](https://thisaintnews.com/static/user/pics/1438214400/1438778535_3d-as-
fuck.gif)

resized
[http://resize.ly/cache/thisaintnews.com/11a454f11a5a6b091c84...](http://resize.ly/cache/thisaintnews.com/11a454f11a5a6b091c84b57aead57b97/200x130.png)

~~~
altern8
scaling animated gifs..?

~~~
mrbig4545
it's a tricky task, but it can be done.

[https://news.ycombinator.com/item?id=10054060](https://news.ycombinator.com/item?id=10054060)

------
Kiro
> Create a single hi-res image and Resize.ly will do the rest. You no longer
> have to mess with different image sizes.

What does that mean? What does Resize.ly do exactly?

------
dandare
Why isn't this provided by the big coulds like AWS?

------
kitwalker12
is the pricing better than imgix? Also, for as an opensource alternative, we
use [https://github.com/die-net/fotomat](https://github.com/die-net/fotomat)
as a S3 proxy. It's very fast and scales well

------
hlfw0rd
Meh. Not impressive.

------
justwannasing
Hmm. I've been doing this for years on my server. Why is this needed if you
know how to code? I don't understand.

On top of that, they want you to pay to use their "cloud service"?

