| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <document> |
| <properties> |
| <title>Building</title> |
| <author email="dev@commons.apache.org">Commons Documentation Team</author> |
| </properties> |
| <body> |
| <!-- ================================================== --> |
| <section name="Justification"> |
| |
| <p> |
| Why another image library? There are so many already. |
| </p> |
| |
| <p> |
| Apache Commons Imaging is Pure Java. Consequently it's slow, but perfectly portable. |
| </p> |
| |
| <p> |
| It is designed to be very easy to use. See the Sample Usage section. |
| </p> |
| |
| <p> |
| This library supports some variations and encodings missed by all or most other libaries. |
| </p> |
| |
| <p> |
| Most other libraries offer little or incomplete support for ICC Profiles. |
| Commons Imaging can extract and (simply) parse embedded ICC Profiles. |
| Moreover, it applies the ICC profile by default, coverting read images to sRGB. |
| This means images are color-corrected by default. |
| see: <a href="http://en.wikipedia.org/wiki/International_Color_Consortium">http://en.wikipedia.org/wiki/International_Color_Consortium</a>, |
| <a href="http://en.wikipedia.org/wiki/SRGB">http://en.wikipedia.org/wiki/SRGB</a> |
| </p> |
| |
| <p> |
| Commons Imaging also lets you read in image info (ie. width, height or colorspace) and metadata without |
| "reading" the entire image. It presents image info and metadata in a format-neutral manner. |
| It also gives easy, structured access to format-specific info. |
| </p> |
| |
| <p> |
| This library was written with an eye to correctness and code clarity rather than efficiency. |
| Hopefully it is easy to use, easy to extend and can be used to explore images + image formats, |
| rather than just read images for display. |
| </p> |
| |
| <p> |
| This library is Free Software/Open Source. It is available under the |
| <a href="../license.html">Apache Software License</a>. |
| </p> |
| |
| <p> |
| Ultimately, other libraries didn't quite fill my requirements, though there are many good ones out there. |
| What could be interesting is to get a free, portable, feature complete library that ISN'T pure Java |
| - ie. one that uses JNI, at least for JPEG, anyhow. The obvious solution would be a JNI wrapper |
| around libtiff, libjpeg, libpng, libgif/libungif, etc. imageloader uses this approach, but |
| is unfinished. |
| see: <a href="http://www.libtiff.org/">http://www.libtiff.org/</a>, |
| <a href="http://en.wikipedia.org/wiki/Libjpeg">http://en.wikipedia.org/wiki/Libjpeg</a>, |
| <a href="http://www.libpng.org/">http://www.libpng.org/</a>, |
| <a href="http://sourceforge.net/projects/libungif/">http://sourceforge.net/projects/libungif/</a> |
| </p> |
| |
| <p> |
| Commons Imaging also includes a number of useful functions such as guess an image's format by examining its "magic numbers" (header info). |
| </p> |
| |
| <p> |
| Commons Imaging aims to be transparent. There are no hidden buffers to dispose, no blocking calls, no native memory to free. |
| </p> |
| |
| <p> |
| The ColorConversions class offers methods to convert between the following color spaces: CIE-L*CH�, CIE-L*ab, CIE-L*uv, |
| CMY, CMYK, HSL, HSV, Hunter-Lab, RGB, XYZ and Yxy (algorithms courtesy of EasyRGB's). |
| see: <a href="http://www.easyrgb.com/">http://www.easyrgb.com/</a> |
| </p> |
| |
| </section> |
| </body> |
| </document> |