summaryrefslogtreecommitdiff
path: root/src/cmsxform.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmsxform.c')
-rw-r--r--src/cmsxform.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cmsxform.c b/src/cmsxform.c
index c70b7cb..93e07f8 100644
--- a/src/cmsxform.c
+++ b/src/cmsxform.c
@@ -989,6 +989,19 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut,
}
}
+ /**
+ * Check consistency for alpha channel copy
+ */
+ if (*dwFlags & cmsFLAGS_COPY_ALPHA)
+ {
+ if (T_EXTRA(*InputFormat) != T_EXTRA(*OutputFormat))
+ {
+ cmsSignalError(ContextID, cmsERROR_NOT_SUITABLE, "Mismatched alpha channels");
+ cmsDeleteTransform(p);
+ return NULL;
+ }
+ }
+
p ->InputFormat = *InputFormat;
p ->OutputFormat = *OutputFormat;
p ->dwOriginalFlags = *dwFlags;