summaryrefslogtreecommitdiffstats
path: root/scribus/util_cms.cpp
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/util_cms.cpp
downloadscribus-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.cpp55
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;
+}