4

This question is a crosspost from Stack Overflow because of its predominantly graphical nature and the fact that I think that a primarily graphically oriented community may [be able to] provide advice and insight that the community that frequent Stack Overflow may not be aware of or experienced with/in. Having said this, if Stack Overflow remains the most topically correct place to discuss this, please do say so.


How would I go about creating the same type of effect Safari uses for its Top Sites view?

I would highly prefer a method that does not require I start a GUI. I don't mind if I need to compose the images together into a single canvas first - I can can just prepend that onto my command.

I found a related, but not entirely helpful, similar post (although it's where I got the screenshot from :P): openglES - give a curved effect to a wall of pictures

Screenshot of safari

  • Cross-posting is not encouraged on the SE network. Choose one site where you think your question fits best and only post it there. If it is not in the right place a mod will migrate it to the correct site. Please remove the Stackoverflow question (as that one has no answers yet). – Saaru Lindestøkke Apr 23 '14 at 19:32
6

You can use imagemagick's distort filter. In particular, the Barrel distort or Cylinder2Plane should accomplish what you want. After you've composited your images:

convert input.png -matte -virtual-pixel transparent -distort Barrel "0.0 0.0 0.0 1.0   0.0 0.0 -0.4 1.6"  output.png

or

convert input.png -virtual-pixel transparent +distort Cylinder2Plane 90.467  output.png
  • Wow, both of these produce really interesting results, thanks! The first one in particular provides lots of options for configuration of the generated image too, which is awesome. (Took a while to get back here, sorry :P) – i336_ May 8 '14 at 0:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.