Frequently Asqued Questions

Q: What is Little CMS?

  • lcms is a LibraryFOR PROGRAMMERS ONLY.
  • lcms is FREE and does include SOURCE CODE.
  • lcms deals with color management stuff.
  • lcms is a CMM engine; it implements fast transforms between ICC profiles.
  • lcms is a standalone engine; it doesn't need ICM or ColorSync to work.
  • lcms intends to be PORTABLE across several platforms.
  • lcms is distributed under the MIT license agreement.

Q: What is Little CMS NOT?

  • lcms is NOT a file format or display library. lcms knows nothing about how to display bitmaps (JPEG, TIFF, GIF or whatever).
  • lcms is NOT a complete color management solution.
  • lcms is NOT commercial: thus, lcms is NOT supported software.

Q: How can I use Little CMS in my apps?

Little CMS adds basic ICC profile support. Then you can use the profiles to prepare a bitmap for display, keeping the original image colors. Little CMS is also useful for quickly converting between color spaces. Little CMS can also generate accurate separations based on the target printer, or inversely it can recover RGB data from a stored separation. Also, Little CMS can "Proof" an image, showing the final colors as they would be rendered on a specific device.

Less common usage would be to convert from RGB to CMYK accurately, to convert separations done for one printer to another printer, to use CIEL*a*b as working space, to read Lab TIFF, to characterize Colorimetric PNG, etc. etc.

Q: Is Little CMS really free?

As long as you abide by the licensing conditions, yes. It is free under the MIT license agreement. You can use Little CMS in your commercial apps, too. This is an extremely liberal license. The license requires a pointer referencing the copyright , so you can add a file in your distribution disk saying that your product uses Little CMS, and the coyright. That's all. (Of course, if you use the package and can improve on it, then your contribution will be welcome, but no contribution is required.)

Q: Do I have to release my own source code if I use Little CMS?


Q: Do I have to release changes I make to Little CMS?

From Little CMS 1.2 I use the MIT license, which does not require you to do this. However, you should consider the maintenance overhead of keeping your own custom version of Little CMS, versus the advantages you might get from participating in the community (such as bugfixes and extensions that others may make on top of yours).

Q: What do I need to do to abide by the MIT license?

Simply include our license text somewhere in your own software distribution; this could be in a text file, in a printed manual, in the credits, etc.

Q: t what point do I have to ensure that I’ve complied with the license?

When you distribute any part of your application to a third party.

Q: Why the MIT license?

Little CMS did use LGPL until revision 1.12, but after that, we switched to the MIT license because is more suitable to commercial products. I can consider other licenses for particular needs in commercial products, Please contact me in such case

Q: I'm not a programmer. Can I benefit from Little CMS?

Even if you are not a programmer but you are interested in colorimetry, you can still download the utility programs to experiment with profiles and see how much images can change when profiles are involved. Of course, programmers are also welcome! ;)

Q: Which C/C++ compilers are supported?

Any C99 compliant compiler, like GCC or Intel. In addition and MS Visual Studio and Borland 5.5 are also supported

Q: I see that Little CMS is written in "C". Can I use it in my XXX programming language?

If your XXX programming language supports pointers and DLL or so calls, yes. Little CMS (as a DLL) uses the stdcall convention, so, it is usable from Visual Basic, for example. There is a special package for full Delphi support. On linux this applies to shared libraries.

Q: Will Little CMS work with my XXX "C" compiler ?

Probably YES. Little CMS is not using K&R, but the ANSI standard C99.

Q: Does Little CMS work on Mac?


Q: Does Little CMS work on embedded linux? My machine is a big-endian one, will still work?

Yes and Yes. Of course, if your C compiler accepts the code, as far as I know, there are also ports to FreeBSD, Solaris, Sun and even VMS. The best way to find out is to try it! ;)

Q: Do you have any preferred way to report security issues?

I think security issues are real and should be addressed. And I prefer to address by myself, so you would know who to blame if anything fails. The proposed process is quite simple, if you detect a potential security issue and you are able to create a patch, please send me the patch to analyse. I have an extensive test bed of apps and utilities using lcms, so I can check if all those goes fine. Please avoid advisories if possible, as doing that hints how to use the flaw for malicious use. Credits to vulnerability busters will be given on each release. After the patch proves to be harmless, I will send to the mailing list a signed mail with the patch attached. That is, you got a patch from upstream that upstream claims to be reasonably tested. I will apply the same checks that I do before a normal release. Please understand that this is a lot of work, and obviously it can fail as well, so the “no guarantee” clause of MIT license applies. If you choose to redistribute such patches, please make sure to include the mail, or at least the MIT license. By including the MIT license you prevent to get in legal trouble.