diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs
index 19a1253..f073bf7 100644
--- a/PerlMagick/Magick.xs
+++ b/PerlMagick/Magick.xs
@@ -1700,7 +1700,7 @@
if (SvPOK(sval))
mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
for ( ; image; image=image->next)
- SetImageMask(image,mask,exception);
+ SetImageMask(image,mask,ReadPixelMask,exception);
break;
}
if (LocaleCompare(attribute,"mattecolor") == 0)
@@ -1913,6 +1913,18 @@
case 'R':
case 'r':
{
+ if (LocaleCompare(attribute,"read-mask") == 0)
+ {
+ Image
+ *mask;
+
+ mask=(Image *) NULL;
+ if (SvPOK(sval))
+ mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
+ for ( ; image; image=image->next)
+ SetImageMask(image,mask,ReadPixelMask,exception);
+ break;
+ }
if (LocaleCompare(attribute,"red-primary") == 0)
{
for ( ; image; image=image->next)
@@ -2228,6 +2240,18 @@
}
break;
}
+ if (LocaleCompare(attribute,"write-mask") == 0)
+ {
+ Image
+ *mask;
+
+ mask=(Image *) NULL;
+ if (SvPOK(sval))
+ mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
+ for ( ; image; image=image->next)
+ SetImageMask(image,mask,WritePixelMask,exception);
+ break;
+ }
if (info)
SetImageOption(info->image_info,attribute,SvPV(sval,na));
for ( ; image; image=image->next)
diff --git a/PerlMagick/quantum/quantum.xs.in b/PerlMagick/quantum/quantum.xs.in
index 4556774..76a20be 100644
--- a/PerlMagick/quantum/quantum.xs.in
+++ b/PerlMagick/quantum/quantum.xs.in
@@ -1245,7 +1245,7 @@
if (SvPOK(sval))
clip_mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
for ( ; image; image=image->next)
- SetImageMask(image,clip_mask,exception);
+ SetImageMask(image,clip_mask,ReadPixelMask,exception);
break;
}
if (LocaleNCompare(attribute,"colormap",8) == 0)
@@ -1700,7 +1700,7 @@
if (SvPOK(sval))
mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
for ( ; image; image=image->next)
- SetImageMask(image,mask,exception);
+ SetImageMask(image,mask,ReadPixelMask,exception);
break;
}
if (LocaleCompare(attribute,"mattecolor") == 0)
@@ -1913,6 +1913,18 @@
case 'R':
case 'r':
{
+ if (LocaleCompare(attribute,"read-mask") == 0)
+ {
+ Image
+ *mask;
+
+ mask=(Image *) NULL;
+ if (SvPOK(sval))
+ mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
+ for ( ; image; image=image->next)
+ SetImageMask(image,mask,ReadPixelMask,exception);
+ break;
+ }
if (LocaleCompare(attribute,"red-primary") == 0)
{
for ( ; image; image=image->next)
@@ -2228,6 +2240,18 @@
}
break;
}
+ if (LocaleCompare(attribute,"write-mask") == 0)
+ {
+ Image
+ *mask;
+
+ mask=(Image *) NULL;
+ if (SvPOK(sval))
+ mask=SetupList(aTHX_ SvRV(sval),&info,(SV ***) NULL,exception);
+ for ( ; image; image=image->next)
+ SetImageMask(image,mask,WritePixelMask,exception);
+ break;
+ }
if (info)
SetImageOption(info->image_info,attribute,SvPV(sval,na));
for ( ; image; image=image->next)