diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index d4ca019..a230214 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -344,6 +344,12 @@
break;
center=(ssize_t) GetPixelChannels(image)*(width-j)*((width-j)/2L)+
GetPixelChannels(image)*((width-j)/2L);
+ if (GetPixelMask(image,p) != 0)
+ {
+ q+=GetPixelChannels(blur_image);
+ r+=GetPixelChannels(edge_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
MagickRealType
@@ -376,8 +382,7 @@
if ((traits == UndefinedPixelTrait) ||
(blur_traits == UndefinedPixelTrait))
continue;
- if (((blur_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,q) != 0))
+ if ((blur_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(blur_image,channel,p[center+i],q);
continue;
@@ -665,6 +670,12 @@
break;
center=(ssize_t) GetPixelChannels(image)*(width-j)*((width-j)/2L)+
GetPixelChannels(image)*((width-j)/2);
+ if (GetPixelMask(image,p) != 0)
+ {
+ q+=GetPixelChannels(sharp_image);
+ r+=GetPixelChannels(edge_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(sharp_image); i++)
{
MagickRealType
@@ -697,8 +708,7 @@
if ((traits == UndefinedPixelTrait) ||
(sharp_traits == UndefinedPixelTrait))
continue;
- if (((sharp_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,q) != 0))
+ if ((sharp_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(sharp_image,channel,p[center+i],q);
continue;
@@ -968,6 +978,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(blur_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
MagickRealType
@@ -997,8 +1013,7 @@
if ((traits == UndefinedPixelTrait) ||
(blur_traits == UndefinedPixelTrait))
continue;
- if (((blur_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((blur_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(blur_image,channel,p[center+i],q);
continue;
@@ -1091,6 +1106,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(blur_image);
+ q+=GetPixelChannels(blur_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(blur_image); i++)
{
MagickRealType
@@ -1120,8 +1141,7 @@
if ((traits == UndefinedPixelTrait) ||
(blur_traits == UndefinedPixelTrait))
continue;
- if (((blur_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(blur_image,p) != 0))
+ if ((blur_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(blur_image,channel,p[center+i],q);
continue;
@@ -1957,6 +1977,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(blur_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
MagickRealType
@@ -1986,8 +2012,7 @@
if ((traits == UndefinedPixelTrait) ||
(blur_traits == UndefinedPixelTrait))
continue;
- if (((blur_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((blur_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(blur_image,channel,p[i],q);
continue;
@@ -2752,6 +2777,12 @@
if (step >= n)
step=n-1;
}
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(blur_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
MagickRealType
@@ -2777,8 +2808,7 @@
if ((traits == UndefinedPixelTrait) ||
(blur_traits == UndefinedPixelTrait))
continue;
- if (((blur_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((blur_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(blur_image,channel,p[i],q);
continue;
@@ -3025,6 +3055,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(blur_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
MagickRealType
@@ -3058,8 +3094,7 @@
if ((traits == UndefinedPixelTrait) ||
(blur_traits == UndefinedPixelTrait))
continue;
- if (((blur_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((blur_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(blur_image,channel,p[center+i],q);
continue;
@@ -3312,6 +3347,14 @@
shade=distance/sqrt((double) normal_distance);
}
}
+ if (GetPixelMask(image,p) != 0)
+ {
+ pre+=GetPixelChannels(image);
+ center+=GetPixelChannels(image);
+ post+=GetPixelChannels(image);
+ q+=GetPixelChannels(shade_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelChannel
@@ -3327,8 +3370,7 @@
if ((traits == UndefinedPixelTrait) ||
(shade_traits == UndefinedPixelTrait))
continue;
- if (((shade_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,pre) != 0))
+ if ((shade_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(shade_image,channel,center[i],q);
continue;
@@ -3724,6 +3766,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(unsharp_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
MagickRealType
@@ -3742,8 +3790,7 @@
if ((traits == UndefinedPixelTrait) ||
(unsharp_traits == UndefinedPixelTrait))
continue;
- if (((unsharp_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((unsharp_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(unsharp_image,channel,p[i],q);
continue;
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index dd4d855..c0f1f8e 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -339,6 +339,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(noise_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelChannel
@@ -354,8 +360,7 @@
if ((traits == UndefinedPixelTrait) ||
(noise_traits == UndefinedPixelTrait))
continue;
- if (((noise_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((noise_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(noise_image,channel,p[i],q);
continue;
@@ -3058,6 +3063,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(fx_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
MagickRealType
@@ -3076,8 +3087,7 @@
if ((traits == UndefinedPixelTrait) ||
(fx_traits == UndefinedPixelTrait))
continue;
- if (((fx_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((fx_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(fx_image,channel,p[i],q);
continue;
@@ -3497,6 +3507,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(morph_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(morph_image); i++)
{
PixelChannel
@@ -3512,8 +3528,7 @@
if ((traits == UndefinedPixelTrait) ||
(morph_traits == UndefinedPixelTrait))
continue;
- if (((morph_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((morph_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(morph_image,channel,p[i],q);
continue;
diff --git a/MagickCore/paint.c b/MagickCore/paint.c
index ca64b58..ac33f92 100644
--- a/MagickCore/paint.c
+++ b/MagickCore/paint.c
@@ -655,6 +655,12 @@
}
k+=(ssize_t) (image->columns+width);
}
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(paint_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelChannel
@@ -670,8 +676,7 @@
if ((traits == UndefinedPixelTrait) ||
(paint_traits == UndefinedPixelTrait))
continue;
- if (((paint_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((paint_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(paint_image,channel,p[center+i],q);
continue;
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index 63ab2f2..d4ef0e5 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -5652,6 +5652,9 @@
register ssize_t
i;
+ if (image->debug != MagickFalse)
+ (void) LogMagickEvent(PixelEvent,GetMagickModule(),"%s[%08x]", \
+ image->filename,channel_mask); \
image->channel_mask=channel_mask;
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index 3bfec7f..fdf87d2 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -2253,6 +2253,11 @@
register ssize_t
i;
+ if (GetPixelMask(resize_image,q) != 0)
+ {
+ q+=GetPixelChannels(resize_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(resize_image); i++)
{
MagickRealType
@@ -2279,8 +2284,7 @@
if ((traits == UndefinedPixelTrait) ||
(resize_traits == UndefinedPixelTrait))
continue;
- if (((resize_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(resize_image,q) != 0))
+ if ((resize_traits & CopyPixelTrait) != 0)
{
j=(ssize_t) (MagickMin(MagickMax(bisect,(double) start),(double)
stop-1.0)+0.5);
@@ -2467,6 +2471,11 @@
register ssize_t
i;
+ if (GetPixelMask(resize_image,q) != 0)
+ {
+ q+=GetPixelChannels(resize_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(resize_image); i++)
{
MagickRealType
@@ -2493,8 +2502,7 @@
if ((traits == UndefinedPixelTrait) ||
(resize_traits == UndefinedPixelTrait))
continue;
- if (((resize_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(resize_image,q) != 0))
+ if ((resize_traits & CopyPixelTrait) != 0)
{
j=(ssize_t) (MagickMin(MagickMax(bisect,(double) start),(double)
stop-1.0)+0.5);
diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c
index e6fb94e..3ccb07c 100644
--- a/MagickCore/statistic.c
+++ b/MagickCore/statistic.c
@@ -857,6 +857,8 @@
traits=GetPixelChannelMapTraits(image,channel);
if (traits == UndefinedPixelTrait)
continue;
+ if ((traits & CopyPixelTrait) != 0)
+ continue;
q[i]=ClampToQuantum(ApplyEvaluateOperator(random_info[id],q[i],op,
value));
}
@@ -2288,6 +2290,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(statistic_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
PixelChannel
@@ -2315,8 +2323,7 @@
if ((traits == UndefinedPixelTrait) ||
(statistic_traits == UndefinedPixelTrait))
continue;
- if (((statistic_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((statistic_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(statistic_image,channel,p[center+i],q);
continue;
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 997199f..76a5dd9 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -239,6 +239,12 @@
register ssize_t
i;
+ if (GetPixelMask(image,p) != 0)
+ {
+ p+=GetPixelChannels(image);
+ q+=GetPixelChannels(threshold_image);
+ continue;
+ }
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
MagickRealType
@@ -267,8 +273,7 @@
if ((traits == UndefinedPixelTrait) ||
(threshold_traits == UndefinedPixelTrait))
continue;
- if (((threshold_traits & CopyPixelTrait) != 0) ||
- (GetPixelMask(image,p) != 0))
+ if ((threshold_traits & CopyPixelTrait) != 0)
{
SetPixelChannel(threshold_image,channel,p[center+i],q);
continue;