Author: jghali
Date: Sun Aug  5 17:05:53 2018
New Revision: 22615

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22615
Log:
increase numeric precision when exporting gradients to PDF

Modified:
    trunk/Scribus/scribus/pdflib_core.cpp

Modified: trunk/Scribus/scribus/pdflib_core.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22615&path=/trunk/Scribus/scribus/pdflib_core.cpp
==============================================================================
--- trunk/Scribus/scribus/pdflib_core.cpp       (original)
+++ trunk/Scribus/scribus/pdflib_core.cpp       Sun Aug  5 17:05:53 2018
@@ -5905,9 +5905,8 @@
 QByteArray PDFLibCore::SetGradientColor(const QString& farbe, double Shade)
 {
        QByteArray tmp;
-       RGBColor rgb;
-       CMYKColor cmyk;
-       int h, s, v, k;
+       RGBColorF rgb;
+       CMYKColorF cmyk;
        if (farbe == CommonStrings::None)
        {
                if (Options.isGrayscale)
@@ -5929,31 +5928,27 @@
                return tmp;
        }
        ScColor tmpC(doc.PageColors[farbe]);
-       QColor tmpR;
        if (Options.isGrayscale)
        {
                bool kToGray = false;
                if (tmpC.getColorModel() == colorModelCMYK)
                {
                        ScColorEngine::getShadeColorCMYK(tmpC, &doc, cmyk, 
Shade);
-                       cmyk.getValues(h, s, v, k);
-                       kToGray = (h == 0 && s == 0 && v == 0);
+                       kToGray = (cmyk.c == 0.0 && cmyk.m == 0.0 && cmyk.y == 
0.0);
                }
                if (kToGray)
-                       tmp = FToStr(1.0 - k / 255.0);
+                       tmp = FToStr(1.0 - cmyk.k);
                else
                {
-                       tmpR = ScColorEngine::getShadeColor(tmpC, &doc, Shade);
-                       tmpR.getRgb(&h, &s, &v);
-                       tmp = FToStr((0.3 * h + 0.59 * s + 0.11 * v) / 255.0);
+                       ScColorEngine::getShadeColorRGB(tmpC, &doc, rgb, Shade);
+                       tmp = FToStr(0.3 * rgb.r + 0.59 * rgb.g + 0.11 * rgb.b);
                }
                return tmp;
        }
        if (Options.UseRGB)
        {
-               tmpR = ScColorEngine::getShadeColor(tmpC, &doc, Shade);
-               tmpR.getRgb(&h, &s, &v);
-               tmp = FToStr(h / 255.0)+" "+FToStr(s / 255.0)+" "+FToStr(v / 
255.0);
+               ScColorEngine::getShadeColorRGB(tmpC, &doc, rgb, Shade);
+               tmp = FToStr(rgb.r) + " " + FToStr(rgb.g) + " " + FToStr(rgb.b);
        }
        else
        {
@@ -5962,21 +5957,18 @@
                        if (Options.SComp == 3)
                        {
                                ScColorEngine::getShadeColorRGB(tmpC, &doc, 
rgb, Shade);
-                               rgb.getValues(h, s, v);
-                               tmp = FToStr(h / 255.0)+" "+FToStr(s / 255.0)+" 
"+FToStr(v / 255.0);
+                               tmp = FToStr(rgb.r) + " " + FToStr(rgb.g) + " " 
+ FToStr(rgb.b);
                        }
                        else
                        {
                                ScColorEngine::getShadeColorCMYK(tmpC, &doc, 
cmyk, Shade);
-                               cmyk.getValues(h, s, v, k);
-                               tmp = FToStr(h / 255.0)+" "+FToStr(s / 255.0)+" 
"+FToStr(v / 255.0)+" "+FToStr(k / 255.0);
+                               tmp = FToStr(cmyk.c) + " " + FToStr(cmyk.m) + " 
" + FToStr(cmyk.y) + " " + FToStr(cmyk.k);
                        }
                }
                else
                {
                        ScColorEngine::getShadeColorCMYK(tmpC, &doc, cmyk, 
Shade);
-                       cmyk.getValues(h, s, v, k);
-                       tmp = FToStr(h / 255.0)+" "+FToStr(s / 255.0)+" 
"+FToStr(v / 255.0)+" "+FToStr(k / 255.0);
+                       tmp = FToStr(cmyk.c) + " " + FToStr(cmyk.m) + " " + 
FToStr(cmyk.y) + " " + FToStr(cmyk.k);
                }
        }
        return tmp;


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to