Re: [GD-DEVEL] RGB to Lab colorspace conversion

[email protected] (Pierre Joye) Tue, 26 Jan 2010 19:42:04 +0100
Newsgroups php.gd.devel
Message-ID <[email protected]>
hi,

Ah, you are the author of this code? If yes and if you agree to
relicense it to BSD for GD (the port), then everything is fine :). If
you are not the author, then we have to implement it from scratch
based on the specs.

Cheers,

On Tue, Jan 26, 2010 at 6:59 PM, Joe Lencioni <[email protected]> wrote:
> The links to the functions that I sent were all written by me (based off of
> the math on the Wikipedia
> articles http://en.wikipedia.org/wiki/Lab_color_space http://en.wikipedia.org/wiki/Color_difference and
> the EasyRGB
> website http://www.easyrgb.com/index.php?X=MATH http://www.easyrgb.com/index.php?X=DELT).
> If you are concerned about the GPL license on the code from Google Code, I
> would be happy to let you port that code for GD. Please let me know if there
> is anything that I can do to help make this happen.
> Joe
>
> On Tue, Jan 26, 2010 at 11:42 AM, Pierre Joye <[email protected]> wrote:
>>
>> hi,
>>
>> Color conversions would rock. If you can find implementation under a
>> BSD license (or similar but not GPL), we will happy to port them.
>>
>> Cheers,
>>
>> On Mon, Jan 25, 2010 at 11:41 PM, Joe Lencioni <[email protected]>
>> wrote:
>> > First of all, thank you for developing GD. It is an indispensable tool
>> > for
>> > working with images in PHP.
>> >
>> > I am working on an image resizing and cropping script that attempts to
>> > detect which areas of an image are more important when making cropping
>> > decisions--essentially asking the computer to determine perceptual color
>> > differences. To accomplish this, I convert pixels from the RGB
>> > colorspace
>> > into Lab colorspace and compare the differences. (
>> > http://en.wikipedia.org/wiki/Lab_color_space#Advantages_of_Lab). While I
>> > can
>> > make this happen in PHP, it is slow and uses too much memory. I would
>> > love
>> > to see functions to facilitate this conversion and comparison directly
>> > in
>> > GD.
>> >
>> > To convert from RGB to Lab, you first need to convert from RGB to XYZ
>> > colorspace and then from XYZ to Lab colorspace. Here are the functions
>> > that
>> > I use for conversion in PHP (which have been derived from the formulas
>> > on
>> > the EasyRGB website http://www.easyrgb.com/index.php?X=MATH):
>> >
>> > GD color index to RGB:
>> >
>> > http://code.google.com/p/smart-lencioni-image-resizer/source/browse/trunk/slirimage.class.php?spec=svn59&r=46#755
>> > RGB to XYZ:
>> >
>> > http://code.google.com/p/smart-lencioni-image-resizer/source/browse/trunk/slirimage.class.php?spec=svn59&r=46#770
>> >
>> > XYZ to CIE-L*a*b* (more complex):
>> >
>> > http://code.google.com/p/smart-lencioni-image-resizer/source/browse/trunk/slirimage.class.php?spec=svn59&r=46#825
>> > or
>> > XYZ to Hunter-Lab (less complex):
>> >
>> > http://code.google.com/p/smart-lencioni-image-resizer/source/browse/trunk/slirimage.class.php?spec=svn59&r=46#806
>> >
>> > And comparing the colors (more info at
>> > http://en.wikipedia.org/wiki/Color_difference):
>> >
>> > deltaE 2000 (complex):
>> >
>> > http://code.google.com/p/smart-lencioni-image-resizer/source/browse/trunk/slirimage.class.php?spec=svn59&r=46#874
>> > or
>> > deltaE 76 (simple):
>> >
>> > http://code.google.com/p/smart-lencioni-image-resizer/source/browse/trunk/slirimage.class.php?spec=svn59&r=46#857
>> > or
>> > deltaE CMC:
>> >
>> > http://code.google.com/p/smart-lencioni-image-resizer/source/browse/trunk/slirimage.class.php?spec=svn59&r=46#967
>> >
>> > For accuracy purposes, I would prefer to be able to use the more complex
>> > equations. However, if they prove to be too slow, it would be nice to
>> > fall
>> > back on the simpler versions.
>> >
>> > So my question is this: does this kind of functionality make sense to
>> > include in GD (I hope so)? If so, will you add it? I am unfamiliar with
>> > C,
>> > otherwise I would submit the code, but hopefully it won't be too much
>> > work
>> > to convert the PHP functions I have provided here.
>> >
>> > Thanks!
>> > Joe
>> >
>>
>>
>>
>> --
>> Pierre
>>
>> @pierrejoye | http://blog.thepimp.net | http://www.libgd.org
>
>



-- 
Pierre

@pierrejoye | http://blog.thepimp.net | http://www.libgd.org