diff options
| author | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
|---|---|---|
| committer | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
| commit | 7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch) | |
| tree | 4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/util_cms.cpp | |
| download | scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip | |
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/util_cms.cpp')
| -rw-r--r-- | scribus/util_cms.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/scribus/util_cms.cpp b/scribus/util_cms.cpp new file mode 100644 index 0000000..97961d0 --- /dev/null +++ b/scribus/util_cms.cpp @@ -0,0 +1,55 @@ +/* +For general Scribus (>=1.3.2) copyright and licensing information please refer +to the COPYING file provided with the program. Following this notice may exist +a copyright and/or license notice that predates the release of Scribus 1.3.2 +for which a new license (GPL+exception) is in place. +*/ +#include "util_cms.h" +#include <QString> + +cmsHTRANSFORM scCmsCreateTransform(cmsHPROFILE Input, DWORD InputFormat, + cmsHPROFILE Output,DWORD OutputFormat, + int Intent, DWORD dwFlags) +{ + cmsHTRANSFORM hTransform = NULL; + if ( Input == NULL || Output == NULL) + return NULL; + dwFlags &= (~cmsFLAGS_GAMUTCHECK); + dwFlags &= (~cmsFLAGS_SOFTPROOFING); + QString desc1 = cmsTakeProductDesc(Input); + QString desc2 = cmsTakeProductDesc(Output); + if ( desc1 == desc2 ) + dwFlags |= cmsFLAGS_NULLTRANSFORM; + hTransform = cmsCreateTransform(Input, InputFormat, Output, OutputFormat, Intent, dwFlags); + return hTransform; +} + +cmsHTRANSFORM scCmsCreateProofingTransform(cmsHPROFILE Input, DWORD InputFormat, + cmsHPROFILE Output,DWORD OutputFormat, + cmsHPROFILE Proofing, int Intent, + int ProofingIntent, DWORD dwFlags) +{ + cmsHTRANSFORM hTransform = NULL; + if ( Input == NULL || Output == NULL || Proofing == NULL) + return NULL; + QString desc1 = cmsTakeProductDesc(Input); + QString desc2 = cmsTakeProductDesc(Output); + QString desc3 = cmsTakeProductDesc(Proofing); + dwFlags &= ~cmsFLAGS_BLACKPOINTCOMPENSATION; + if ( desc1 != desc3 ) + { + if( desc2 == desc3 ) + ProofingIntent = INTENT_RELATIVE_COLORIMETRIC; + hTransform = cmsCreateProofingTransform(Input, InputFormat, Output, OutputFormat, Proofing, Intent, + ProofingIntent, dwFlags); + } + else + { + dwFlags &= (~cmsFLAGS_GAMUTCHECK); + dwFlags &= (~cmsFLAGS_SOFTPROOFING); + if ( desc1 == desc2 ) + dwFlags |= cmsFLAGS_NULLTRANSFORM; + hTransform = cmsCreateTransform(Input, InputFormat, Output, OutputFormat, ProofingIntent, dwFlags); + } + return hTransform; +} |
