[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