Front end web development has come a long way. Web pages today contain many utilities and frameworks to make their elements responsive to screen size. However, images on web pages don't have much of any utilities to adjust their content based on screen size. That's why we made ResponsIm.js

How it works

We use Seam Carving as described by Shai Avidan et al. in their paper Seam Carving for Content-Aware Image Resizing []

We demonstrated this web capability at Bitcamp 2015 by creating a Investor Profiler using FINRA data, and placing a responsive image of the skyline of London as a banner on the top of the page. We also created a mongodb utility to scrape FINRA's xml format and transfer it to a noSQL db, to this end.

Checkout a Video of it working in a browser with two different images here:

Challenges I ran into

Processing speed was key. We broke up the process of placing a responsive image on your site into a preprocessing step done using PythonCV and a rendering step done entirely in Javascript and HTML5 Canvas.

Accomplishments that I'm proud of

When you place a responsive image on your website and see it work, it's almost magical. I can't believe that there wasn't a framework for this type of front end magic before.

What I learned

Image processing in JS is tricky.

What's next for ResponsIm.js

Bug fixes and a stable build of course!

Share this project: