File indexing completed on 2024-05-12 15:59:33
0001 /* 0002 * SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "KoColorConversionTransformationFactory.h" 0008 0009 #include <QString> 0010 0011 #include "KoColorProfile.h" 0012 #include "KoColorSpace.h" 0013 #include "DebugPigment.h" 0014 #include "KoColorSpaceRegistry.h" 0015 0016 struct Q_DECL_HIDDEN KoColorConversionTransformationFactory::Private { 0017 QString srcModelId; 0018 QString srcDepthId; 0019 QString dstModelId; 0020 QString dstDepthId; 0021 QString srcProfile; 0022 QString dstProfile; 0023 }; 0024 0025 KoColorConversionTransformationFactory::KoColorConversionTransformationFactory(const QString &_srcModelId, const QString &_srcDepthId, const QString &_srcProfile, const QString &_dstModelId, const QString &_dstDepthId, const QString &_dstProfile) : d(new Private) 0026 { 0027 d->srcModelId = _srcModelId; 0028 d->srcDepthId = _srcDepthId; 0029 d->dstModelId = _dstModelId; 0030 d->dstDepthId = _dstDepthId; 0031 d->srcProfile = KoColorSpaceRegistry::instance()->profileAlias(_srcProfile); 0032 d->dstProfile = KoColorSpaceRegistry::instance()->profileAlias(_dstProfile); 0033 } 0034 0035 KoColorConversionTransformationFactory::~KoColorConversionTransformationFactory() 0036 { 0037 delete d; 0038 } 0039 0040 bool KoColorConversionTransformationFactory::canBeSource(const KoColorSpace* srcCS) const 0041 { 0042 return ((srcCS->colorModelId().id() == d->srcModelId) 0043 && (srcCS->colorDepthId().id() == d->srcDepthId) 0044 && (d->srcProfile == "" || srcCS->profile()->name() == d->srcProfile)); 0045 } 0046 0047 bool KoColorConversionTransformationFactory::canBeDestination(const KoColorSpace* dstCS) const 0048 { 0049 dbgPigment << dstCS->colorModelId().id() << " " << d->dstModelId << " " << dstCS->colorDepthId().id() << " " << d->dstDepthId << " " << d->dstProfile << " " << (dstCS->profile() ? dstCS->profile()->name() : "noprofile") << " " << d->dstProfile; 0050 return ((dstCS->colorModelId().id() == d->dstModelId) 0051 && (dstCS->colorDepthId().id() == d->dstDepthId) 0052 && (d->dstProfile == "" || dstCS->profile()->name() == d->dstProfile)); 0053 } 0054 0055 QString KoColorConversionTransformationFactory::srcColorModelId() const 0056 { 0057 return d->srcModelId; 0058 } 0059 QString KoColorConversionTransformationFactory::srcColorDepthId() const 0060 { 0061 return d->srcDepthId; 0062 } 0063 0064 QString KoColorConversionTransformationFactory::srcProfile() const 0065 { 0066 return d->srcProfile; 0067 } 0068 0069 QString KoColorConversionTransformationFactory::dstColorModelId() const 0070 { 0071 return d->dstModelId; 0072 } 0073 QString KoColorConversionTransformationFactory::dstColorDepthId() const 0074 { 0075 return d->dstDepthId; 0076 } 0077 0078 QString KoColorConversionTransformationFactory::dstProfile() const 0079 { 0080 return d->dstProfile; 0081 } 0082