Here is the new Haskell image processing library that uses JuicyPixels for encoding, provides an interface to read and write all supported formats in a very simple manner and manipulate them in any way you can imagine. As a simple example of how easy it is:
>>> img <- readImageRGB "image.jpg" >>> writeImage "image90.png" $ rotate90 img
The above image will be read in JPG format in the RGB color space, rotate it 90 degrees clockwise and save as a PNG image.
Oh yes, it can also use Repa, so you also get parallel processing for free.
source share