GSoC/GCI Archive
Google Summer of Code 2009


Web Page:

Mailing List:

OpenImageIO is an API and library for reading and writing 2D images, extremely flexible (yet simple to use), employing expandable plugins for the specific image formats (currently including TIFF, JPEG, OpenEXR, PNG, and HDR, and growing). There are also classes that allow client code to access truly vast amount of image data with very small in-memory cache, and to do high-quality texture lookups. And finally several image tools that are built on these classes, including image info, image differencing, image format conversion and metadata modification, grep/searching images for text in metadata or other properties, and also a really nice image viewer.

You can get a much better idea of the scope, design sense, and craftsmanship of the project by skimming the documentation:

It's all cross-platform and BSD licensed.

Contributors include current and former employees of Sony Imageworks, NVIDIA, Pixar, ILM, PDI/Dreamworks, and Google, and this project builds on ideas we have refined over the course of working together on other big commercial projects in graphics and imaging.



  • Give "iv" some love Iv, the image viewer included with oiio, currently only works with OpenGL 2.0 or superior and lacks some fancy and interesting tools which could be done with OpenGL, my proposal is to implement both. I also propose some "extended" objectives which are meant to be taken as optional and which not necessarily fall in the iv/OpenGL realm (but are cool, interesting and challenging anyway).
  • OpenImageIO - porting to Windows and writing plugins to support new formats Within GSoC challenge I would like to start the library development. While writing my application I have taken into account the projects mentioned on your website. I decided I will divide my work on the library into two stages. The first one will be porting the library to Windows systems family. The second stage would assume writing three plugins adding new formats service.
  • Python bindings for OpenImageIO OIIO currently has a really nice C++ interface. The goal of this project is to provide Python bindings (through Boost::Python) so that image operations could be scripted and Python programs would have access to all of OIIO's functionality while maintaining the core's C++ speed.