% MagickCore Image Decoration Methods %
% %
% Software Design %
-% John Cristy %
+% Cristy %
% July 1992 %
% %
% %
-% Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
% obtain a copy of the License at %
% %
-% http://www.imagemagick.org/script/license.php %
+% https://www.imagemagick.org/script/license.php %
% %
% Unless required by applicable law or agreed to in writing, software %
% distributed under the License is distributed on an "AS IS" BASIS, %
#include "MagickCore/pixel-accessor.h"
#include "MagickCore/quantum.h"
#include "MagickCore/quantum-private.h"
+#include "MagickCore/resource_.h"
#include "MagickCore/thread-private.h"
#include "MagickCore/transform.h"
\f
frame_info;
assert(image != (const Image *) NULL);
- assert(image->signature == MagickSignature);
+ assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
assert(border_info != (RectangleInfo *) NULL);
PixelInfo
accentuate,
highlight,
- interior,
matte,
shadow,
trough;
Check frame geometry.
*/
assert(image != (Image *) NULL);
- assert(image->signature == MagickSignature);
+ assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
assert(frame_info != (FrameInfo *) NULL);
if ((frame_info->outer_bevel < 0) || (frame_info->inner_bevel < 0))
ThrowImageException(OptionError,"FrameIsLessThanImageSize");
bevel_width=(size_t) (frame_info->outer_bevel+frame_info->inner_bevel);
- width=frame_info->width-frame_info->x-bevel_width;
- height=frame_info->height-frame_info->y-bevel_width;
- if ((width < image->columns) || (height < image->rows))
+ x=(ssize_t) frame_info->width-frame_info->x-bevel_width;
+ y=(ssize_t) frame_info->height-frame_info->y-bevel_width;
+ if ((x < (ssize_t) image->columns) | (y < (ssize_t) image->rows))
ThrowImageException(OptionError,"FrameIsLessThanImageSize");
/*
Initialize framed image attributes.
frame_image=DestroyImage(frame_image);
return((Image *) NULL);
}
- if ((frame_image->border_color.matte != MagickFalse) &&
- (frame_image->matte == MagickFalse))
+ if ((IsPixelInfoGray(&frame_image->border_color) == MagickFalse) &&
+ (IsGrayColorspace(frame_image->colorspace) != MagickFalse))
+ (void) SetImageColorspace(frame_image,sRGBColorspace,exception);
+ if ((frame_image->matte_color.alpha_trait != UndefinedPixelTrait) &&
+ (frame_image->alpha_trait == UndefinedPixelTrait))
(void) SetImageAlpha(frame_image,OpaqueAlpha,exception);
frame_image->page=image->page;
if ((image->page.width != 0) && (image->page.height != 0))
/*
Initialize 3D effects color.
*/
- interior=image->border_color;
matte=image->matte_color;
accentuate=matte;
- accentuate.red=(MagickRealType) (QuantumScale*((QuantumRange-
+ accentuate.red=(double) (QuantumScale*((QuantumRange-
AccentuateModulate)*matte.red+(QuantumRange*AccentuateModulate)));
- accentuate.green=(MagickRealType) (QuantumScale*((QuantumRange-
+ accentuate.green=(double) (QuantumScale*((QuantumRange-
AccentuateModulate)*matte.green+(QuantumRange*AccentuateModulate)));
- accentuate.blue=(MagickRealType) (QuantumScale*((QuantumRange-
+ accentuate.blue=(double) (QuantumScale*((QuantumRange-
AccentuateModulate)*matte.blue+(QuantumRange*AccentuateModulate)));
- accentuate.black=(MagickRealType) (QuantumScale*((QuantumRange-
+ accentuate.black=(double) (QuantumScale*((QuantumRange-
AccentuateModulate)*matte.black+(QuantumRange*AccentuateModulate)));
accentuate.alpha=matte.alpha;
highlight=matte;
- highlight.red=(MagickRealType) (QuantumScale*((QuantumRange-
+ highlight.red=(double) (QuantumScale*((QuantumRange-
HighlightModulate)*matte.red+(QuantumRange*HighlightModulate)));
- highlight.green=(MagickRealType) (QuantumScale*((QuantumRange-
+ highlight.green=(double) (QuantumScale*((QuantumRange-
HighlightModulate)*matte.green+(QuantumRange*HighlightModulate)));
- highlight.blue=(MagickRealType) (QuantumScale*((QuantumRange-
+ highlight.blue=(double) (QuantumScale*((QuantumRange-
HighlightModulate)*matte.blue+(QuantumRange*HighlightModulate)));
- highlight.black=(MagickRealType) (QuantumScale*((QuantumRange-
+ highlight.black=(double) (QuantumScale*((QuantumRange-
HighlightModulate)*matte.black+(QuantumRange*HighlightModulate)));
highlight.alpha=matte.alpha;
shadow=matte;
trough.alpha=matte.alpha;
status=MagickTrue;
progress=0;
- image_view=AcquireCacheView(image);
- frame_view=AcquireCacheView(frame_image);
+ image_view=AcquireVirtualCacheView(image,exception);
+ frame_view=AcquireAuthenticCacheView(frame_image,exception);
height=(size_t) (frame_info->outer_bevel+(frame_info->y-bevel_width)+
frame_info->inner_bevel);
if (height != 0)
x;
register Quantum
- *restrict q;
+ *magick_restrict q;
/*
Draw top of ornamental border.
for (x=0; x < (ssize_t) (frame_image->columns-y); x++)
{
if (x < y)
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
else
- SetPixelInfoPixel(frame_image,&accentuate,q);
+ SetPixelViaPixelInfo(frame_image,&accentuate,q);
q+=GetPixelChannels(frame_image);
}
for ( ; x < (ssize_t) frame_image->columns; x++)
{
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
q+=GetPixelChannels(frame_image);
}
}
{
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
q+=GetPixelChannels(frame_image);
}
width=frame_image->columns-2*frame_info->outer_bevel;
for (x=0; x < (ssize_t) width; x++)
{
- SetPixelInfoPixel(frame_image,&matte,q);
+ SetPixelViaPixelInfo(frame_image,&matte,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
q+=GetPixelChannels(frame_image);
}
}
{
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) (frame_info->x-bevel_width); x++)
{
- SetPixelInfoPixel(frame_image,&matte,q);
+ SetPixelViaPixelInfo(frame_image,&matte,q);
q+=GetPixelChannels(frame_image);
}
width=image->columns+((size_t) frame_info->inner_bevel << 1)-
for (x=0; x < (ssize_t) width; x++)
{
if (x < y)
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
else
- SetPixelInfoPixel(frame_image,&trough,q);
+ SetPixelViaPixelInfo(frame_image,&trough,q);
q+=GetPixelChannels(frame_image);
}
for ( ; x < (ssize_t) (image->columns+2*frame_info->inner_bevel); x++)
{
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
q+=GetPixelChannels(frame_image);
}
width=frame_info->width-frame_info->x-image->columns-bevel_width;
for (x=0; x < (ssize_t) width; x++)
{
- SetPixelInfoPixel(frame_image,&matte,q);
+ SetPixelViaPixelInfo(frame_image,&matte,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
q+=GetPixelChannels(frame_image);
}
}
/*
Draw sides of ornamental border.
*/
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp parallel for schedule(static) shared(progress,status)
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static,4) shared(progress,status) \
+ magick_threads(image,frame_image,1,1)
#endif
for (y=0; y < (ssize_t) image->rows; y++)
{
x;
register Quantum
- *restrict q;
+ *magick_restrict q;
size_t
width;
}
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) (frame_info->x-bevel_width); x++)
{
- SetPixelInfoPixel(frame_image,&matte,q);
+ SetPixelViaPixelInfo(frame_image,&matte,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) frame_info->inner_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
q+=GetPixelChannels(frame_image);
}
/*
- Set frame interior to interior color.
+ Set frame interior pixels.
*/
- if ((compose != CopyCompositeOp) && ((compose != OverCompositeOp) ||
- (image->matte != MagickFalse)))
- for (x=0; x < (ssize_t) image->columns; x++)
- {
- SetPixelInfoPixel(frame_image,&interior,q);
- q+=GetPixelChannels(frame_image);
- }
- else
- {
- register const Quantum
- *p;
-
- p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
- if (p == (const Quantum *) NULL)
- {
- status=MagickFalse;
- continue;
- }
- for (x=0; x < (ssize_t) image->columns; x++)
- {
- if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
- SetPixelRed(frame_image,GetPixelRed(image,p),q);
- if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
- SetPixelGreen(frame_image,GetPixelGreen(image,p),q);
- if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
- SetPixelBlue(frame_image,GetPixelBlue(image,p),q);
- if ((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0)
- SetPixelBlack(frame_image,GetPixelBlack(image,p),q);
- if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)
- SetPixelAlpha(frame_image,GetPixelAlpha(image,p),q);
- p+=GetPixelChannels(image);
- q+=GetPixelChannels(frame_image);
- }
- }
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetPixelViaPixelInfo(frame_image,&frame_image->border_color,q);
+ q+=GetPixelChannels(frame_image);
+ }
for (x=0; x < (ssize_t) frame_info->inner_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
q+=GetPixelChannels(frame_image);
}
width=frame_info->width-frame_info->x-image->columns-bevel_width;
for (x=0; x < (ssize_t) width; x++)
{
- SetPixelInfoPixel(frame_image,&matte,q);
+ SetPixelViaPixelInfo(frame_image,&matte,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
q+=GetPixelChannels(frame_image);
}
if (SyncCacheViewAuthenticPixels(frame_view,exception) == MagickFalse)
MagickBooleanType
proceed;
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
#pragma omp critical (MagickCore_FrameImage)
#endif
proceed=SetImageProgress(image,FrameImageTag,progress++,image->rows);
x;
register Quantum
- *restrict q;
+ *magick_restrict q;
/*
Draw bottom of ornamental border.
{
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) (frame_info->x-bevel_width); x++)
{
- SetPixelInfoPixel(frame_image,&matte,q);
+ SetPixelViaPixelInfo(frame_image,&matte,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < y; x++)
{
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
q+=GetPixelChannels(frame_image);
}
for ( ; x < (ssize_t) (image->columns+2*frame_info->inner_bevel); x++)
{
if (x >= (ssize_t) (image->columns+2*frame_info->inner_bevel-y))
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
else
- SetPixelInfoPixel(frame_image,&accentuate,q);
+ SetPixelViaPixelInfo(frame_image,&accentuate,q);
q+=GetPixelChannels(frame_image);
}
width=frame_info->width-frame_info->x-image->columns-bevel_width;
for (x=0; x < (ssize_t) width; x++)
{
- SetPixelInfoPixel(frame_image,&matte,q);
+ SetPixelViaPixelInfo(frame_image,&matte,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
q+=GetPixelChannels(frame_image);
}
}
{
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
q+=GetPixelChannels(frame_image);
}
width=frame_image->columns-2*frame_info->outer_bevel;
for (x=0; x < (ssize_t) width; x++)
{
- SetPixelInfoPixel(frame_image,&matte,q);
+ SetPixelViaPixelInfo(frame_image,&matte,q);
q+=GetPixelChannels(frame_image);
}
for (x=0; x < (ssize_t) frame_info->outer_bevel; x++)
{
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
q+=GetPixelChannels(frame_image);
}
}
{
for (x=0; x < y; x++)
{
- SetPixelInfoPixel(frame_image,&highlight,q);
+ SetPixelViaPixelInfo(frame_image,&highlight,q);
q+=GetPixelChannels(frame_image);
}
for ( ; x < (ssize_t) frame_image->columns; x++)
{
if (x >= (ssize_t) (frame_image->columns-y))
- SetPixelInfoPixel(frame_image,&shadow,q);
+ SetPixelViaPixelInfo(frame_image,&shadow,q);
else
- SetPixelInfoPixel(frame_image,&trough,q);
+ SetPixelViaPixelInfo(frame_image,&trough,q);
q+=GetPixelChannels(frame_image);
}
}
}
frame_view=DestroyCacheView(frame_view);
image_view=DestroyCacheView(image_view);
- if ((compose != CopyCompositeOp) && ((compose != OverCompositeOp) ||
- (image->matte != MagickFalse)))
- {
- x=(ssize_t) (frame_info->outer_bevel+(frame_info->x-bevel_width)+
- frame_info->inner_bevel);
- y=(ssize_t) (frame_info->outer_bevel+(frame_info->y-bevel_width)+
- frame_info->inner_bevel);
- (void) CompositeImage(frame_image,image,compose,MagickTrue,x,y,
- exception);
- }
+ x=(ssize_t) (frame_info->outer_bevel+(frame_info->x-bevel_width)+
+ frame_info->inner_bevel);
+ y=(ssize_t) (frame_info->outer_bevel+(frame_info->y-bevel_width)+
+ frame_info->inner_bevel);
+ if (status != MagickFalse)
+ status=CompositeImage(frame_image,image,compose,MagickTrue,x,y,
+ exception);
+ if (status == MagickFalse)
+ frame_image=DestroyImage(frame_image);
return(frame_image);
}
\f
y;
assert(image != (Image *) NULL);
- assert(image->signature == MagickSignature);
+ assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
assert(raise_info != (RectangleInfo *) NULL);
(image->rows <= (raise_info->height << 1)))
ThrowBinaryException(OptionError,"ImageSizeMustExceedBevelWidth",
image->filename);
- foreground=(Quantum) QuantumRange;
+ foreground=QuantumRange;
background=(Quantum) 0;
if (raise == MagickFalse)
{
foreground=(Quantum) 0;
- background=(Quantum) QuantumRange;
+ background=QuantumRange;
}
if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
*/
status=MagickTrue;
progress=0;
- image_view=AcquireCacheView(image);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp parallel for schedule(static) shared(progress,status)
+ image_view=AcquireAuthenticCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static,4) shared(progress,status) \
+ magick_threads(image,image,1,1)
#endif
for (y=0; y < (ssize_t) raise_info->height; y++)
{
x;
register Quantum
- *restrict q;
+ *magick_restrict q;
if (status == MagickFalse)
continue;
}
for (x=0; x < y; x++)
{
- if (GetPixelMask(image,q) != 0)
+ if (GetPixelWriteMask(image,q) == 0)
{
q+=GetPixelChannels(image);
continue;
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- PixelChannel
- channel;
-
- PixelTrait
- traits;
-
- channel=GetPixelChannelMapChannel(image,i);
- traits=GetPixelChannelMapTraits(image,channel);
+ PixelChannel channel=GetPixelChannelChannel(image,i);
+ PixelTrait traits=GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
- q[i]=ClampToQuantum(QuantumScale*((MagickRealType) q[i]*HighlightFactor+
- (MagickRealType) foreground*(QuantumRange-HighlightFactor)));
+ q[i]=ClampToQuantum(QuantumScale*((double) q[i]*HighlightFactor+(double)
+ foreground*(QuantumRange-HighlightFactor)));
}
q+=GetPixelChannels(image);
}
for ( ; x < (ssize_t) (image->columns-y); x++)
{
- if (GetPixelMask(image,q) != 0)
+ if (GetPixelWriteMask(image,q) == 0)
{
q+=GetPixelChannels(image);
continue;
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- PixelChannel
- channel;
-
- PixelTrait
- traits;
-
- channel=GetPixelChannelMapChannel(image,i);
- traits=GetPixelChannelMapTraits(image,channel);
+ PixelChannel channel=GetPixelChannelChannel(image,i);
+ PixelTrait traits=GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
- q[i]=ClampToQuantum(QuantumScale*((MagickRealType) q[i]*
- AccentuateFactor+(MagickRealType) foreground*(QuantumRange-
- AccentuateFactor)));
+ q[i]=ClampToQuantum(QuantumScale*((double) q[i]*AccentuateFactor+
+ (double) foreground*(QuantumRange-AccentuateFactor)));
}
q+=GetPixelChannels(image);
}
for ( ; x < (ssize_t) image->columns; x++)
{
- if (GetPixelMask(image,q) != 0)
+ if (GetPixelWriteMask(image,q) == 0)
{
q+=GetPixelChannels(image);
continue;
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- PixelChannel
- channel;
-
- PixelTrait
- traits;
-
- channel=GetPixelChannelMapChannel(image,i);
- traits=GetPixelChannelMapTraits(image,channel);
+ PixelChannel channel=GetPixelChannelChannel(image,i);
+ PixelTrait traits=GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
- q[i]=ClampToQuantum(QuantumScale*((MagickRealType) q[i]*ShadowFactor+
- (MagickRealType) background*(QuantumRange-ShadowFactor)));
+ q[i]=ClampToQuantum(QuantumScale*((double) q[i]*ShadowFactor+(double)
+ background*(QuantumRange-ShadowFactor)));
}
q+=GetPixelChannels(image);
}
MagickBooleanType
proceed;
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp critical (MagickCore_RaiseImage)
+#endif
proceed=SetImageProgress(image,RaiseImageTag,progress++,image->rows);
if (proceed == MagickFalse)
status=MagickFalse;
}
}
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp parallel for schedule(static) shared(progress,status)
+ #pragma omp parallel for schedule(static,4) shared(progress,status) \
+ magick_threads(image,image,1,1)
#endif
for (y=(ssize_t) raise_info->height; y < (ssize_t) (image->rows-raise_info->height); y++)
{
x;
register Quantum
- *restrict q;
+ *magick_restrict q;
if (status == MagickFalse)
continue;
}
for (x=0; x < (ssize_t) raise_info->width; x++)
{
- if (GetPixelMask(image,q) != 0)
+ if (GetPixelWriteMask(image,q) == 0)
{
q+=GetPixelChannels(image);
continue;
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- PixelChannel
- channel;
-
- PixelTrait
- traits;
-
- channel=GetPixelChannelMapChannel(image,i);
- traits=GetPixelChannelMapTraits(image,channel);
+ PixelChannel channel=GetPixelChannelChannel(image,i);
+ PixelTrait traits=GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
- q[i]=ClampToQuantum(QuantumScale*((MagickRealType) q[i]*HighlightFactor+
- (MagickRealType) foreground*(QuantumRange-HighlightFactor)));
+ q[i]=ClampToQuantum(QuantumScale*((double) q[i]*HighlightFactor+(double)
+ foreground*(QuantumRange-HighlightFactor)));
}
q+=GetPixelChannels(image);
}
q+=GetPixelChannels(image);
for ( ; x < (ssize_t) image->columns; x++)
{
- if (GetPixelMask(image,q) != 0)
+ if (GetPixelWriteMask(image,q) == 0)
{
q+=GetPixelChannels(image);
continue;
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- PixelChannel
- channel;
-
- PixelTrait
- traits;
-
- channel=GetPixelChannelMapChannel(image,i);
- traits=GetPixelChannelMapTraits(image,channel);
+ PixelChannel channel=GetPixelChannelChannel(image,i);
+ PixelTrait traits=GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
- q[i]=ClampToQuantum(QuantumScale*((MagickRealType) q[i]*ShadowFactor+
- (MagickRealType) background*(QuantumRange-ShadowFactor)));
+ q[i]=ClampToQuantum(QuantumScale*((double) q[i]*ShadowFactor+(double)
+ background*(QuantumRange-ShadowFactor)));
}
q+=GetPixelChannels(image);
}
MagickBooleanType
proceed;
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp critical (MagickCore_RaiseImage)
+#endif
proceed=SetImageProgress(image,RaiseImageTag,progress++,image->rows);
if (proceed == MagickFalse)
status=MagickFalse;
}
}
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp parallel for schedule(static) shared(progress,status)
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+ #pragma omp parallel for schedule(static,4) shared(progress,status) \
+ magick_threads(image,image,1,1)
#endif
for (y=(ssize_t) (image->rows-raise_info->height); y < (ssize_t) image->rows; y++)
{
x;
register Quantum
- *restrict q;
+ *magick_restrict q;
if (status == MagickFalse)
continue;
}
for (x=0; x < (ssize_t) (image->rows-y); x++)
{
- if (GetPixelMask(image,q) != 0)
+ if (GetPixelWriteMask(image,q) == 0)
{
q+=GetPixelChannels(image);
continue;
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- PixelChannel
- channel;
-
- PixelTrait
- traits;
-
- channel=GetPixelChannelMapChannel(image,i);
- traits=GetPixelChannelMapTraits(image,channel);
+ PixelChannel channel=GetPixelChannelChannel(image,i);
+ PixelTrait traits=GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
- q[i]=ClampToQuantum(QuantumScale*((MagickRealType) q[i]*HighlightFactor+
- (MagickRealType) foreground*(QuantumRange-HighlightFactor)));
+ q[i]=ClampToQuantum(QuantumScale*((double) q[i]*HighlightFactor+(double)
+ foreground*(QuantumRange-HighlightFactor)));
}
q+=GetPixelChannels(image);
}
{
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- PixelChannel
- channel;
-
- PixelTrait
- traits;
-
- channel=GetPixelChannelMapChannel(image,i);
- traits=GetPixelChannelMapTraits(image,channel);
+ PixelChannel channel=GetPixelChannelChannel(image,i);
+ PixelTrait traits=GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
- q[i]=ClampToQuantum(QuantumScale*((MagickRealType) q[i]*TroughFactor+
- (MagickRealType) background*(QuantumRange-TroughFactor)));
+ q[i]=ClampToQuantum(QuantumScale*((double) q[i]*TroughFactor+
+ (double) background*(QuantumRange-TroughFactor)));
}
q+=GetPixelChannels(image);
}
for ( ; x < (ssize_t) image->columns; x++)
{
- if (GetPixelMask(image,q) != 0)
+ if (GetPixelWriteMask(image,q) == 0)
{
q+=GetPixelChannels(image);
continue;
}
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
- PixelChannel
- channel;
-
- PixelTrait
- traits;
-
- channel=GetPixelChannelMapChannel(image,i);
- traits=GetPixelChannelMapTraits(image,channel);
+ PixelChannel channel=GetPixelChannelChannel(image,i);
+ PixelTrait traits=GetPixelChannelTraits(image,channel);
if ((traits & UpdatePixelTrait) == 0)
continue;
- q[i]=ClampToQuantum(QuantumScale*((MagickRealType) q[i]*ShadowFactor+
- (MagickRealType) background*(QuantumRange-ShadowFactor)));
+ q[i]=ClampToQuantum(QuantumScale*((double) q[i]*ShadowFactor+(double)
+ background*(QuantumRange-ShadowFactor)));
}
q+=GetPixelChannels(image);
}