File indexing completed on 2024-05-12 15:59:33
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::convertToQImage(const KoColorSpace *srcColorSpace, const quint8 *data, qint32 width, qint32 height) const 0027 { 0028 return srcColorSpace->convertToQImage(data, width, height, 0, KoColorConversionTransformation::internalRenderingIntent(), KoColorConversionTransformation::internalConversionFlags()); 0029 } 0030 0031 QColor KoDumbColorDisplayRenderer::toQColor(const KoColor &c) const 0032 { 0033 return c.toQColor(); 0034 } 0035 0036 KoColor KoDumbColorDisplayRenderer::approximateFromRenderedQColor(const QColor &c) const 0037 { 0038 KoColor color; 0039 color.fromQColor(c); 0040 return color; 0041 } 0042 0043 KoColor KoDumbColorDisplayRenderer::fromHsv(int h, int s, int v, int a) const 0044 { 0045 h = qBound(0, h, 359); 0046 s = qBound(0, s, 255); 0047 v = qBound(0, v, 255); 0048 a = qBound(0, a, 255); 0049 QColor qcolor(QColor::fromHsv(h, s, v, a)); 0050 return KoColor(qcolor, KoColorSpaceRegistry::instance()->rgb8()); 0051 } 0052 0053 void KoDumbColorDisplayRenderer::getHsv(const KoColor &srcColor, int *h, int *s, int *v, int *a) const 0054 { 0055 QColor qcolor = toQColor(srcColor); 0056 qcolor.getHsv(h, s, v, a); 0057 } 0058 0059 KoColorDisplayRendererInterface* KoDumbColorDisplayRenderer::instance() 0060 { 0061 return s_instance; 0062 } 0063 0064 qreal KoDumbColorDisplayRenderer::minVisibleFloatValue(const KoChannelInfo *chaninfo) const 0065 { 0066 Q_ASSERT(chaninfo); 0067 return chaninfo->getUIMin(); 0068 } 0069 0070 qreal KoDumbColorDisplayRenderer::maxVisibleFloatValue(const KoChannelInfo *chaninfo) const 0071 { 0072 Q_ASSERT(chaninfo); 0073 return chaninfo->getUIMax(); 0074 } 0075 0076 const KoColorSpace* KoDumbColorDisplayRenderer::getPaintingColorSpace() const 0077 { 0078 return KoColorSpaceRegistry::instance()->rgb8(); 0079 }