[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [calligra/calligra/2.9] krita/plugins/formats/jpeg: CCBUG:351298 Save CMYK JPEG's correctly
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2015-08-15 12:06:26
Message-ID: E1ZQaEE-0005qs-Uo () scm ! kde ! org
[Download RAW message or body]

Git commit 56ef25478758e19598e50eaf0406c5b2e6ab30ee by Boudewijn Rempt.
Committed on 15/08/2015 at 12:05.
Pushed by rempt into branch 'calligra/2.9'.

CCBUG:351298 Save CMYK JPEG's correctly

And warn the user that we're downscaling their 16 bit image to
8 bit. A 2007 todo done!

M  +9    -4    krita/plugins/formats/jpeg/kis_jpeg_converter.cc

http://commits.kde.org/calligra/56ef25478758e19598e50eaf0406c5b2e6ab30ee

diff --git a/krita/plugins/formats/jpeg/kis_jpeg_converter.cc \
b/krita/plugins/formats/jpeg/kis_jpeg_converter.cc index 191ab9f..4bc259e 100644
--- a/krita/plugins/formats/jpeg/kis_jpeg_converter.cc
+++ b/krita/plugins/formats/jpeg/kis_jpeg_converter.cc
@@ -50,6 +50,7 @@ extern "C" {
 #include <KoColorProfile.h>
 #include <KoColor.h>
 #include <KoUnit.h>
+#include "KoColorModelStandardIds.h"
 
 #include <kis_painter.h>
 #include <KisDocument.h>
@@ -476,6 +477,10 @@ KisImageBuilder_Result KisJPEGConverter::buildFile(const KUrl& \
uri, KisPaintLaye  const KoColorSpace * cs = layer->colorSpace();
     J_COLOR_SPACE color_type = getColorTypeforColorSpace(cs);
 
+    if (!m_batchMode && cs->colorDepthId() != Integer8BitsColorDepthID) {
+        QMessageBox::information(0, i18nc("@title:window", "Krita"), i18n("Warning: \
JPEG only supports 8 bits per channel. Your image uses: %1. Krita will save your \
image as 8 bits per channel.", cs->name())); +    }
+
     if (color_type == JCS_UNKNOWN) {
         if (!m_batchMode) {
             QMessageBox::information(0, i18nc("@title:window", "Krita"), \
i18n("Cannot export images in %1.\nWill save as RGB.", cs->name())); @@ -701,10 \
+706,10 @@ KisImageBuilder_Result KisJPEGConverter::buildFile(const KUrl& uri, \
KisPaintLaye  do {
                     //const quint16 *d = reinterpret_cast<const quint16 \
*>(it->oldRawData());  const quint8 *d = it->oldRawData();
-                    *(dst++) = cs->scaleToU8(d, 0);//quint8_MAX - d[0] / quint8_MAX;
-                    *(dst++) = cs->scaleToU8(d, 1);//quint8_MAX - d[1] / quint8_MAX;
-                    *(dst++) = cs->scaleToU8(d, 2);//quint8_MAX - d[2] / quint8_MAX;
-                    *(dst++) = cs->scaleToU8(d, 3);//quint8_MAX - d[3] / quint8_MAX;
+                    *(dst++) = quint8_MAX - cs->scaleToU8(d, 0);//quint8_MAX - d[0] \
/ quint8_MAX; +                    *(dst++) = quint8_MAX - cs->scaleToU8(d, \
1);//quint8_MAX - d[1] / quint8_MAX; +                    *(dst++) = quint8_MAX - \
cs->scaleToU8(d, 2);//quint8_MAX - d[2] / quint8_MAX; +                    *(dst++) = \
quint8_MAX - cs->scaleToU8(d, 3);//quint8_MAX - d[3] / quint8_MAX;  
                 } while (it->nextPixel());
             } else {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic