Skip to content
Miso is a unified API for simple image operations commonly used on the web.
Branch: master
Clone or download


(...) Miso

Miso is a unified API for simple image operations commonly used on the web. It
provides backends for often used graphic libraries, but it's also pretty easy
to plug in your own backend.

A unified API is helpful when you run your code on a number of different boxes
and architectures. For instance, you could develop your web application on your
Mac with the Core Image backend [1] and deploy to your Linux server with an
ImageMagick/GraphicsMagick backend. You could even have the API talk to your
custom distributed image processing backend.

[1] Note how this means you will never have to install ImageMagick again (;


  $ gem install miso


Miso can be used in three different ways, each useful in different situations.

  1. For the quick crop
    Miso::Image.crop('input.jpg', 'output.jpg', 120, 100)
  2. For the elaborate business logic
    @image ='input.jpg')
    @image.crop(120, 100) if options[:crop], 100) if options[:fit]
  3. As an option
    class Attachment
      has_variant :avatar,
        :processor => Miso::Image.factory.crop(120, 100).fit(60, 40)
  Which works like this;
    factory = Miso::Image.factory.crop(123, 456)
    factory.apply('input.jpg', 'output.jpg')

But wait, there is more! Read the API documentation for more goodies.


Currently supported backends are: Core Image, ImageMagick, and GraphicsMagick,
because those are the ones we, and our contributors use. If you want to
contribute backends we're happy to accept patches!


~> GraphicsMagick * Paul Vaillant (> <)


   @garyyuen: ‘miso with indian flavors. seems ok.’
      @Oracl: ‘@veganza I love miso! :)’
  @lehudgins: ‘ok fine. Miso totally does go kinda bad after a year.’
   Wikipedia: ‘High in protein and rich in vitamins and minerals, miso played
               an important nutritional role in feudal Japan.’
      jacqui: ‘miso wanna use it!’
You can’t perform that action at this time.