File indexing completed on 2024-05-19 04:27:22
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "KoColorDisplayRendererInterface.h" 0008 0009 #include <QGlobalStatic> 0010 0011 #include <KoColorSpaceRegistry.h> 0012 #include <KoChannelInfo.h> 0013 #include <KoColorConversionTransformation.h> 0014 #include <KoColorSpace.h> 0015 0016 Q_GLOBAL_STATIC(KoDumbColorDisplayRenderer, s_instance) 0017 0018 KoColorDisplayRendererInterface::KoColorDisplayRendererInterface() 0019 { 0020 } 0021 0022 KoColorDisplayRendererInterface::~KoColorDisplayRendererInterface() 0023 { 0024 } 0025 0026 QImage KoDumbColorDisplayRenderer::toQImage(const KoColorSpace *srcColorSpace, const quint8 *data, QSize size, bool proofPaintColors) const 0027 { 0028 Q_UNUSED(proofPaintColors); // dumb converter doesn't know a painting color space 0029 return srcColorSpace->convertToQImage(data, size.width(), size.height(), 0, 0030 KoColorConversionTransformation::internalRenderingIntent(), 0031 KoColorConversionTransformation::internalConversionFlags()); 0032 } 0033 0034 QColor KoDumbColorDisplayRenderer::toQColor(const KoColor &c, bool proofToPaintColors) const 0035 { 0036 Q_UNUSED(proofToPaintColors); 0037 return c.toQColor(); 0038 } 0039 0040 KoColor KoDumbColorDisplayRenderer::approximateFromRenderedQColor(const QColor &c) const 0041 { 0042 KoColor color; 0043 color.fromQColor(c); 0044 return color; 0045 } 0046 0047 KoColor KoDumbColorDisplayRenderer::fromHsv(int h, int s, int v, int a) const 0048 { 0049 h = qBound(0, h, 359); 0050 s = qBound(0, s, 255); 0051 v = qBound(0, v, 255); 0052 a = qBound(0, a, 255); 0053 QColor qcolor(QColor::fromHsv(h, s, v, a)); 0054 return KoColor(qcolor, KoColorSpaceRegistry::instance()->rgb8()); 0055 } 0056 0057 void KoDumbColorDisplayRenderer::getHsv(const KoColor &srcColor, int *h, int *s, int *v, int *a) const 0058 { 0059 QColor qcolor = toQColor(srcColor); 0060 qcolor.getHsv(h, s, v, a); 0061 } 0062 0063 KoColorDisplayRendererInterface* KoDumbColorDisplayRenderer::instance() 0064 { 0065 return s_instance; 0066 } 0067 0068 qreal KoDumbColorDisplayRenderer::minVisibleFloatValue(const KoChannelInfo *chaninfo) const 0069 { 0070 Q_ASSERT(chaninfo); 0071 return chaninfo->getUIMin(); 0072 } 0073 0074 qreal KoDumbColorDisplayRenderer::maxVisibleFloatValue(const KoChannelInfo *chaninfo) const 0075 { 0076 Q_ASSERT(chaninfo); 0077 return chaninfo->getUIMax(); 0078 } 0079 0080 const KoColorSpace* KoDumbColorDisplayRenderer::getPaintingColorSpace() const 0081 { 0082 return KoColorSpaceRegistry::instance()->rgb8(); 0083 }