667
667
tar[0] = src[0] * gain / gray;
668
668
tar[1] = src[1] * gain / gray;
669
669
tar[2] = src[2] * gain / gray;' },
671
'setHSV' => { desc => 'Shift Hue, Saturation, Value.',
672
calc => 'tcolor HSV; ccRGB2HSV(src, HSV);
673
HSV[0] = HSV[0] + dH;
674
HSV[0] = HSV[0] - floorf(HSV[0]);
675
HSV[1] = limit(0,HSV[1]+dS,1);
676
HSV[2] = limit(0,HSV[2]+dV,1);
677
ccHSV2RGB(HSV, tar);',
678
prms => {'dH' => { def => 0.3 },
679
'dS' => { def => 0.2 },
680
'dV' => { def => 0.1 } }},
682
'YIQ2RGB' => { desc => 'YIQ to RGB color conversion.',
683
calc => 'colorconv(src, ccYIQ2RGB, tar);' },
684
'RGB2YIQ' => { desc => 'RGB to YIQ color conversion.',
685
calc => 'colorconv(src, ccRGB2YIQ, tar);' },
686
'LMS2RGB' => { desc => 'LMS to RGB color conversion.',
687
calc => 'colorconv(src, ccLMS2RGB, tar);' },
688
'LMS2RGB' => { desc => 'LMS to RGB color conversion.',
689
calc => 'colorconv(src, ccRGB2LMS, tar);' },
690
'RGB2XYZ' => { desc => 'RGB to XYZ color conversion.',
691
calc => 'colorconv(src, ccRGB2XYZ, tar);' },
692
'XYZ2RGB' => { desc => 'XYZ to RGB color conversion.',
693
calc => 'colorconv(src, ccXYZ2RGB, tar);' },
694
'YCbCr2RGB' => { desc => 'YCbCr to RGB color conversion.',
695
calc => 'colorconv(src, ccYCbCr2RGB, tar);' },
696
'RGB2YCbCr' => { desc => 'RGB to YCbCr color conversion.',
697
calc => 'colorconv(src, ccRGB2YCbCr, tar);' },
698
'HSV2RGB' => { desc => 'HSV to RGB color conversion.',
699
calc => 'ccHSV2RGB(src, tar);' },
700
'RGB2HSV' => { desc => 'RGB to HSV color conversion.',
701
calc => 'ccRGB2HSV(src, tar);' },
702
'RGB2LAB' => { desc => 'RGB to LAB color conversion.',
703
calc => 'ccRGB2LAB(src, tar);' },
704
'LAB2RGB' => { desc => 'LAB to RGB color conversion.',
705
calc => 'ccLAB2RGB(src, tar);' },
706
'RGB2HSI' => { desc => 'RGB to HSI color conversion.',
707
calc => 'ccRGB2HSI(src, tar);' },
708
'RGB2YC1C2' => { desc => 'RGB to YC1C2 color conversion.',
709
calc => 'ccRGB2YC1C2(src, tar);' },