copy-paste in jonas' code for srgb -> hsv
This commit is contained in:
parent
be2537938e
commit
cda594d645
|
@ -1,7 +1,7 @@
|
||||||
/* to sRGB from HSV
|
/* to sRGB from HSV
|
||||||
*
|
*
|
||||||
* 9/6/15
|
* 9/6/15
|
||||||
* - from HSV2sRGB.c
|
* - from sRGB2HSV.c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -55,9 +55,63 @@ vips_sRGB2HSV_line( VipsColour *colour, VipsPel *out, VipsPel **in, int width )
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for( i = 0; i < width; i++ ) {
|
for( i = 0; i < width; i++ ) {
|
||||||
q[0] = p[0];
|
unsigned char c_max;
|
||||||
q[1] = p[1];
|
unsigned char c_min;
|
||||||
q[2] = p[2];
|
unsigned char delta;
|
||||||
|
float wrap_around_hue;
|
||||||
|
float secondary_diff;
|
||||||
|
|
||||||
|
wrap_around_hue = 0;
|
||||||
|
secondary_diff = 0;
|
||||||
|
|
||||||
|
if( p[1] < p[2] ) {
|
||||||
|
if( p[2] < p[0] ) {
|
||||||
|
c_max = p[0];
|
||||||
|
c_min = p[1];
|
||||||
|
secondary_diff = p[1] - p[2];
|
||||||
|
wrap_around_hue = 255.0f;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
c_max = p[2];
|
||||||
|
c_min = VIPS_MIN( p[1], p[0] );
|
||||||
|
secondary_diff = p[0] - p[1];
|
||||||
|
wrap_around_hue = 170.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if( p[1] < p[0] ) {
|
||||||
|
c_max = p[0];
|
||||||
|
c_min = p[2];
|
||||||
|
secondary_diff = p[1] - p[2];
|
||||||
|
wrap_around_hue = 0.0f;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
c_max = p[1];
|
||||||
|
c_min = VIPS_MIN( p[2], p[0] );
|
||||||
|
secondary_diff = p[2] - p[0];
|
||||||
|
wrap_around_hue = 85.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( c_max == 0 ) {
|
||||||
|
q[0] = 0;
|
||||||
|
q[1] = 0;
|
||||||
|
q[2] = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
q[2] = c_max;
|
||||||
|
delta = c_max - c_min;
|
||||||
|
|
||||||
|
if( delta == 0 )
|
||||||
|
q[0] = 0;
|
||||||
|
else {
|
||||||
|
q[0] = (unsigned char)
|
||||||
|
(42.5f * (secondary_diff / delta) +
|
||||||
|
wrap_around_hue);
|
||||||
|
}
|
||||||
|
|
||||||
|
q[1] = delta * 255.0f / c_max;
|
||||||
|
}
|
||||||
|
|
||||||
p += 3;
|
p += 3;
|
||||||
q += 3;
|
q += 3;
|
||||||
|
|
Loading…
Reference in New Issue