| (one << (size_t) (i)) : (size_t) (alpha) & ~(one << (size_t) (i)))
#define SteganoImageTag "Stegano/Image"
+ CacheView
+ *stegano_view,
+ *watermark_view;
+
Image
*stegano_image;
j=0;
depth=stegano_image->depth;
k=image->offset;
+ watermark_view=AcquireCacheView(watermark);
+ stegano_view=AcquireCacheView(stegano_image);
for (i=(ssize_t) depth-1; (i >= 0) && (j < (ssize_t) depth); i--)
{
for (y=0; (y < (ssize_t) watermark->rows) && (j < (ssize_t) depth); y++)
{
for (x=0; (x < (ssize_t) watermark->columns) && (j < (ssize_t) depth); x++)
{
- (void) GetOneVirtualPixel(watermark,x,y,&pixel,exception);
+ (void) GetOneCacheViewVirtualPixel(watermark_view,x,y,&pixel,exception);
if ((k/(ssize_t) stegano_image->columns) >= (ssize_t) stegano_image->rows)
break;
- q=GetAuthenticPixels(stegano_image,k % (ssize_t) stegano_image->columns,
- k/(ssize_t) stegano_image->columns,1,1,exception);
+ q=GetCacheViewAuthenticPixels(stegano_view,k % (ssize_t)
+ stegano_image->columns,k/(ssize_t) stegano_image->columns,1,1,
+ exception);
if (q == (PixelPacket *) NULL)
break;
switch (c)
break;
}
}
- if (SyncAuthenticPixels(stegano_image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(stegano_view,exception) == MagickFalse)
break;
c++;
if (c == 3)
status=MagickFalse;
}
}
+ stegano_view=DestroyCacheView(stegano_view);
+ watermark_view=DestroyCacheView(watermark_view);
if (stegano_image->storage_class == PseudoClass)
(void) SyncImage(stegano_image);
return(stegano_image);
} \
}
+ CacheView
+ *floodplane_view,
+ *image_view;
+
ExceptionInfo
*exception;
PushSegmentStack(y+1,x,x,-1);
GetMagickPixelPacket(image,&fill);
GetMagickPixelPacket(image,&pixel);
+ image_view=AcquireCacheView(image);
+ floodplane_view=AcquireCacheView(floodplane_image);
while (s > segment_stack)
{
register const IndexPacket
/*
Recolor neighboring pixels.
*/
- p=GetVirtualPixels(image,0,y,(size_t) (x1+1),1,exception);
- q=GetAuthenticPixels(floodplane_image,0,y,(size_t) (x1+1),1,
+ p=GetCacheViewVirtualPixels(image_view,0,y,(size_t) (x1+1),1,exception);
+ q=GetCacheViewAuthenticPixels(floodplane_view,0,y,(size_t) (x1+1),1,
exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
break;
- indexes=GetVirtualIndexQueue(image);
+ indexes=GetCacheViewVirtualIndexQueue(image_view);
p+=x1;
q+=x1;
for (x=x1; x >= 0; x--)
p--;
q--;
}
- if (SyncAuthenticPixels(floodplane_image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(floodplane_view,exception) == MagickFalse)
break;
skip=x >= x1 ? MagickTrue : MagickFalse;
if (skip == MagickFalse)
{
if (x < (ssize_t) image->columns)
{
- p=GetVirtualPixels(image,x,y,image->columns-x,1,exception);
- q=GetAuthenticPixels(floodplane_image,x,y,image->columns-x,1,
+ p=GetCacheViewVirtualPixels(image_view,x,y,image->columns-x,1,
exception);
+ q=GetCacheViewAuthenticPixels(floodplane_view,x,y,
+ image->columns-x,1,exception);
if ((p == (const PixelPacket *) NULL) ||
(q == (PixelPacket *) NULL))
break;
- indexes=GetVirtualIndexQueue(image);
+ indexes=GetCacheViewVirtualIndexQueue(image_view);
for ( ; x < (ssize_t) image->columns; x++)
{
if (q->opacity == (Quantum) TransparentOpacity)
p++;
q++;
}
- if (SyncAuthenticPixels(floodplane_image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(floodplane_view,exception) == MagickFalse)
break;
}
PushSegmentStack(y,start,x-1,offset);
x++;
if (x <= x2)
{
- p=GetVirtualPixels(image,x,y,(size_t) (x2-x+1),1,exception);
- q=GetAuthenticPixels(floodplane_image,x,y,(size_t) (x2-x+1),1,
+ p=GetCacheViewVirtualPixels(image_view,x,y,(size_t) (x2-x+1),1,
+ exception);
+ q=GetCacheViewAuthenticPixels(floodplane_view,x,y,(size_t) (x2-x+1),1,
exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
break;
- indexes=GetVirtualIndexQueue(image);
+ indexes=GetCacheViewVirtualIndexQueue(image_view);
for ( ; x <= x2; x++)
{
if (q->opacity == (Quantum) TransparentOpacity)
/*
Tile fill color onto floodplane.
*/
- p=GetVirtualPixels(floodplane_image,0,y,image->columns,1,exception);
- q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
+ p=GetCacheViewVirtualPixels(floodplane_view,0,y,image->columns,1,
+ exception);
+ q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
break;
- indexes=GetAuthenticIndexQueue(image);
+ indexes=GetCacheViewAuthenticIndexQueue(image);
for (x=0; x < (ssize_t) image->columns; x++)
{
if (p->opacity != OpaqueOpacity)
p++;
q++;
}
- if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
break;
}
+ floodplane_view=DestroyCacheView(floodplane_view);
+ image_view=DestroyCacheView(image_view);
segment_stack=(SegmentInfo *) RelinquishMagickMemory(segment_stack);
floodplane_image=DestroyImage(floodplane_image);
return(y == (ssize_t) image->rows ? MagickTrue : MagickFalse);
}
if (LocaleCompare("clip-mask",option+1) == 0)
{
+ CacheView
+ *mask_view;
+
Image
- *mask;
+ *mask_image;
ssize_t
y;
/*
Set the image mask.
*/
- mask=GetImageCache(mogrify_info,argv[i+1],exception);
- if (mask == (Image *) NULL)
+ mask_image=GetImageCache(mogrify_info,argv[i+1],exception);
+ if (mask_image == (Image *) NULL)
break;
- for (y=0; y < (ssize_t) mask->rows; y++)
+ if (SetImageStorageClass(mask_image,DirectClass) == MagickFalse)
+ return(MagickFalse);
+ mask_view=AcquireCacheView(mask_image);
+ for (y=0; y < (ssize_t) mask_image->rows; y++)
{
- q=GetAuthenticPixels(mask,0,y,mask->columns,1,exception);
+ q=GetCacheViewAuthenticPixels(mask_view,0,y,mask_image->columns,1,
+ exception);
if (q == (PixelPacket *) NULL)
break;
- for (x=0; x < (ssize_t) mask->columns; x++)
+ for (x=0; x < (ssize_t) mask_image->columns; x++)
{
- if (mask->matte == MagickFalse)
+ if (mask_image->matte == MagickFalse)
q->opacity=PixelIntensityToQuantum(q);
q->red=q->opacity;
q->green=q->opacity;
q->blue=q->opacity;
q++;
}
- if (SyncAuthenticPixels(mask,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(mask_view,exception) == MagickFalse)
break;
}
- if (SetImageStorageClass(mask,DirectClass) == MagickFalse)
- return(MagickFalse);
- mask->matte=MagickTrue;
- (void) SetImageClipMask(*image,mask);
- mask=DestroyImage(mask);
+ mask_view=DestroyCacheView(mask_view);
+ mask_image->matte=MagickTrue;
+ (void) SetImageClipMask(*image,mask_image);
+ mask_image=DestroyImage(mask_image);
InheritException(exception,&(*image)->exception);
break;
}