home
Overview
Corona is an image input/output library that can read, write, and
manipulate image files in just a few lines of code. It can write PNG and TGA
files, and read PNG, JPEG, PCX, BMP, TGA, and GIF. Corona was designed to be
easy to use, and exports a straightforward C++ API. With just a few lines
of C++, you can add image loading to your application.
Corona is open source and licensed under
the zlib license.
In a nutshell, this means that you can use the code however you wish, as
long as you don't claim it as your own.
Corona is highly portable and works on Windows, Linux, and IRIX. It
has been tested with the following compilers: Visual C++ 6, Visual C++ 7,
gcc 2.95.3, gcc 2.96, gcc 3.0.1, gcc 3.2, and SGI MIPSPro. The code has
no known endian issues, so it should work everywhere with few or no changes.
News
2003.09.02 - Corona 1.0.2 Released
- Added a corconvert program to convert one image file to another.
- Changed FileFormatDesc from a struct to an interface, removing a
bunch of string parsing code from corona.h.
- Fixed file read callbacks for JPEG loader. This fixes a bug where
some progressive JPEGs could not be opened.
- fixed memory leaks in SavePNG (Hosam Abdulrrazek)
- you can now specify an initial pixel buffer as the fourth argument
to CreateImage (Hosam Abdulrrazek)
2003.05.11 - Corona 1.0.1 Released
- added IsDirect(), IsPalettized(), and GetPaletteSize() functions
- added FlipImage() function (Razvan Surdulescu)
- made FlipImage() operate in-place on the image object
- added writing support to the MemoryFile implementation
- made OpenFile (local filesystem access) a public function
- made autotools build actually install the corona-config script
- added support for saving TGA images
2003.01.05 - Corona 1.0.0 Released
The big one oh! After seven months, a new version of Corona is out. It has
proven itself to be very mature software, and this release has no very large
changes in functionality. However, I wholeheartedly recommend that everyone
using 0.2.0 use 1.0.0 instead. And if you're not using Corona but are looking
to load image files in C++, give it a shot!
Changes since 0.2.0:
- use __declspec instead of .def files for DLL compatibility with mingw
- made interfaces use __stdcall (COR_CALL) in Win32 so they are more compatible with COM
- build without PNG or JPEG support if their respective libraries aren't found
- added a ConvertPalette function to convert palettes between different pixel formats
- added a corona-config script
- fix bug in image cloning where the whole palette wouldn't be cloned
- added support for BGRA and BGR pixel formats
- better TGA support: 32-bit images should be BGRA, not GBRA. also, properly support flipped and mirrored images.
- added Kevin Gadd's change to make SaveImage() for PNG images save the correct pixel format, including the palette.
- added GetSupportedReadFormats and GetSupportedWriteFormats for supported format enumeration
- renamed GetBytesPerPixel to GetPixelSize
- made GetBytesPerPixel public within the API
- added a MemoryFile implementation for loading images from a block of memory
- removed the FileSystem interface
- added test Win32 image viewer
- made BMP loader return palettized images when relevant
- added JPEG tests to test suite (aegis)
- switch the order of the file type and pixel format in OpenImage. This is so people can do OpenImage("filename", PF_R8G8B8A8) without caring about the file type.
- don't crash when loading incomplete JPEGs
- added Matt Gambrell's .NET bindings to the VC7 build
- const correctness in File::write
2002.06.05 - Corona 0.2.0 Released
Corona 0.2.0 is out. A new web page came with it. :) Here is what changed
since 0.1.0.
- added GLUT example
- added support for the entire BMP spec
- added comprehensive test suite
- four build systems: VC++ 6, VC++ 7, SCons, autoconf/automake
- builds on IRIX
- doxygen documentation
- added image creation and cloning functionality
- fixed possible crash in PNG exporter
- added support for reading TGA and GIF images
- fixed several PCX loading bugs
- added support for palettized images