File indexing completed on 2024-05-12 15:59:31
0001 /* 0002 * SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #ifndef _KO_COLOR_CONVERSION_ALPHA_TRANSFORMATION_H_ 0008 #define _KO_COLOR_CONVERSION_ALPHA_TRANSFORMATION_H_ 0009 0010 #include "KoColorConversionTransformation.h" 0011 #include "KoColorConversionTransformationFactory.h" 0012 0013 #include <KoConfig.h> 0014 #ifdef HAVE_OPENEXR 0015 #include <half.h> 0016 #endif 0017 0018 /** 0019 * Create converter from the alpha color space to any color space 0020 * This class is for use by the KoColorConversionSystemn, no reason 0021 * to use it directly. 0022 */ 0023 template<typename alpha_channel_type> 0024 class KoColorConversionFromAlphaTransformationFactoryImpl : public KoColorConversionTransformationFactory 0025 { 0026 public: 0027 KoColorConversionFromAlphaTransformationFactoryImpl(const QString& _dstModelId, const QString& _dstDepthId, const QString& _dstProfileName); 0028 KoColorConversionTransformation* createColorTransformation(const KoColorSpace* srcColorSpace, 0029 const KoColorSpace* dstColorSpace, 0030 KoColorConversionTransformation::Intent renderingIntent, 0031 KoColorConversionTransformation::ConversionFlags conversionFlags) const override; 0032 }; 0033 0034 typedef KoColorConversionFromAlphaTransformationFactoryImpl<quint8> KoColorConversionFromAlphaTransformationFactory; 0035 typedef KoColorConversionFromAlphaTransformationFactoryImpl<quint16> KoColorConversionFromAlphaU16TransformationFactory; 0036 #ifdef HAVE_OPENEXR 0037 typedef KoColorConversionFromAlphaTransformationFactoryImpl<half> KoColorConversionFromAlphaF16TransformationFactory; 0038 #endif 0039 typedef KoColorConversionFromAlphaTransformationFactoryImpl<float> KoColorConversionFromAlphaF32TransformationFactory; 0040 0041 /** 0042 * Create converter to the alpha color space to any color space 0043 * This class is for use by the KoColorConversionSystemn, no reason 0044 * to use it directly. 0045 */ 0046 template <typename alpha_channel_type> 0047 class KoColorConversionToAlphaTransformationFactoryImpl : public KoColorConversionTransformationFactory 0048 { 0049 public: 0050 KoColorConversionToAlphaTransformationFactoryImpl(const QString& _dstModelId, const QString& _dstDepthId, const QString& _srcProfileName); 0051 KoColorConversionTransformation* createColorTransformation(const KoColorSpace* srcColorSpace, 0052 const KoColorSpace* dstColorSpace, 0053 KoColorConversionTransformation::Intent renderingIntent, 0054 KoColorConversionTransformation::ConversionFlags conversionFlags) const override; 0055 }; 0056 0057 typedef KoColorConversionToAlphaTransformationFactoryImpl<quint8> KoColorConversionToAlphaTransformationFactory; 0058 typedef KoColorConversionToAlphaTransformationFactoryImpl<quint16> KoColorConversionToAlphaU16TransformationFactory; 0059 #ifdef HAVE_OPENEXR 0060 typedef KoColorConversionToAlphaTransformationFactoryImpl<half> KoColorConversionToAlphaF16TransformationFactory; 0061 #endif 0062 typedef KoColorConversionToAlphaTransformationFactoryImpl<float> KoColorConversionToAlphaF32TransformationFactory; 0063 0064 #endif