File Exchange

## RGB to HSL

version 1.0 (1.58 KB) by

Convert from RGB to HSL and HSL to RGB.

Updated

Functions to convert RGB colorspace to HSL colorspace and vice-versa.

yun l

Baptiste

### Baptiste (view profile)

"RGB values have to be between 0 and 1"

This file look like a bit out of date now :s

Daniel

### Daniel (view profile)

Remove the second last line in both functions to increase the precision (`rgb=round...`)

David Holdaway

### David Holdaway (view profile)

without the change it returns whenever you have a 1,1,1 vector. With the change suggested it works ok. I don't like the treatment of all the same colour (e.g. [a,a,a]) though, it should interpolate the change in other colours rather than just turning it to [0,0,0]. I added the following block
if(mx-mn)==0,%if all three colors have same value,
if i==1
hsl(i,2)=0;%then s=0 and
hsl(i,1)=0;%h is undefined but for practical reasons 0
elseif i==2
hsl(i,2)=hsl(i-1,2);%take previous value
hsl(i,1)=hsl(i-1,1);%take previous value
else
hsl(i,2)=2*hsl(i-1,2)-hsl(i-2,2);%interpolate
if hsl(i,2) > 1
hsl(i,2) =1;
elseif hsl(i,2) < 0
hsl(i,2) =0;
end
hsl(i,1)=2*hsl(i-1,1)-hsl(i-2,1);%interpolate
if hsl(i,1) > 1
hsl(i,1) =1;
elseif hsl(i,1) < 0
hsl(i,1) =0;
end
end
continue;
end;

daniel weiler

BUG-REPORT!

Please replace the last return statement with continue... or there will be bad surprises

 31 Mar 2016 1 License update
##### MATLAB Release
MATLAB 5.3.1 (R11.1)