src/lib/CDRCollector.cpp | 49 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 5 deletions(-)
New commits: commit 3aee2631795df394df7f69b6e30fa74fbd837618 Author: Fridrich Å trba <fridrich.st...@bluewin.ch> Date: Fri Apr 4 15:30:06 2014 +0200 YIQ255 - second service - deuce Change-Id: I7cc39c45a3d4a826a20d4e57dc703bec7bd0818e (cherry picked from commit 534d406ff9f6b124fddb3e18b44176aaba54f032) diff --git a/src/lib/CDRCollector.cpp b/src/lib/CDRCollector.cpp index 3bf86f7..0140a4f 100644 --- a/src/lib/CDRCollector.cpp +++ b/src/lib/CDRCollector.cpp @@ -497,30 +497,35 @@ unsigned libcdr::CDRParserState::_getRGBColor(const CDRColor &color) blue = col0; break; } - // YIQ - case 0x0a: // YIQ255 case 0x0b: { double y = (double)col0; double i = (double)col1; double q = (double)col2; - if (colorModel == 0x0a) - { + + y -= 100.0; + if (y < 0.0) y /= 100.0; + else + y /= 155.0; + y *= 0.5; + y += 0.5; + + i -= 100.0; + if (i <= 0.0) i /= 100.0; + else + i /= 155; + i *= 0.5957; + + q -= 100.0; + if (q <= 0) q /= 100.0; - } else - { - y /= 255.0; - i /= 255.0; - q /= 255.0; - } - i /= 2.0*0.5957; - i -= 0.5957; - q /= 2.0*0.5226; - q -= 0.5226; + q /= 155; + q *= 0.5226; + double RR = y + 0.9563*i + 0.6210*q; double GG = y - 0.2127*i - 0.6474*q; double BB = y - 1.1070*i + 1.7046*q; commit f90de3de9839f31ca6c7cb5479b6fd73506ad5dc Author: Fridrich Å trba <fridrich.st...@bluewin.ch> Date: Fri Apr 4 14:59:13 2014 +0200 First try of YIQ Change-Id: I14e981584a5d62cc9e1eff8da5821530c99ff43c (cherry picked from commit 168d996f23d74ea2a47b4d06e841e3fc9a87f97a) diff --git a/src/lib/CDRCollector.cpp b/src/lib/CDRCollector.cpp index 3083855..3bf86f7 100644 --- a/src/lib/CDRCollector.cpp +++ b/src/lib/CDRCollector.cpp @@ -499,12 +499,46 @@ unsigned libcdr::CDRParserState::_getRGBColor(const CDRColor &color) } // YIQ case 0x0a: - { - break; - } // YIQ255 case 0x0b: { + double y = (double)col0; + double i = (double)col1; + double q = (double)col2; + if (colorModel == 0x0a) + { + y /= 100.0; + i /= 100.0; + q /= 100.0; + } + else + { + y /= 255.0; + i /= 255.0; + q /= 255.0; + } + i /= 2.0*0.5957; + i -= 0.5957; + q /= 2.0*0.5226; + q -= 0.5226; + double RR = y + 0.9563*i + 0.6210*q; + double GG = y - 0.2127*i - 0.6474*q; + double BB = y - 1.1070*i + 1.7046*q; + if (RR > 1.0) + RR = 1.0; + if (RR < 0.0) + RR = 0.0; + if (GG > 1.0) + GG = 1.0; + if (GG < 0.0) + GG = 0.0; + if (BB > 1.0) + BB = 1.0; + if (BB < 0.0) + BB = 0.0; + red = (unsigned char)cdr_round(255*RR); + green = (unsigned char)cdr_round(255*GG); + blue = (unsigned char)cdr_round(255*BB); break; } // Lab
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits