runlength=0; \
}
+ CacheView
+ *image_view;
+
const HuffmanTable
*entry;
int
byte;
- ssize_t
- y;
-
MagickBooleanType
proceed;
*p;
ssize_t
- count;
+ count,
+ y;
unsigned char
*scanline;
image->y_resolution=196.0;
image->units=PixelsPerInchResolution;
exception=(&image->exception);
+ image_view=AcquireCacheView(image);
for (y=0; ((y < (ssize_t) image->rows) && (null_lines < 3)); )
{
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
/*
Initialize scanline to white.
*/
Transfer scanline to image pixels.
*/
p=scanline;
- q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+ q=QueueCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
if (q == (PixelPacket *) NULL)
break;
- indexes=GetAuthenticIndexQueue(image);
+ indexes=GetCacheViewAuthenticIndexQueue(image_view);
for (x=0; x < (ssize_t) image->columns; x++)
{
index=(IndexPacket) (*p++);
indexes[x]=index;
*q++=image->colormap[(ssize_t) index];
}
- if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
break;
proceed=SetImageProgress(image,LoadImageTag,y,image->rows);
if (proceed == MagickFalse)
break;
y++;
}
+ image_view=DestroyCacheView(image_view);
image->rows=(size_t) MagickMax((size_t) y-3,1);
image->compression=FaxCompression;
/*
}
MagickExport MagickBooleanType PlasmaImageProxy(Image *image,
- RandomInfo *random_info,const SegmentInfo *segment,size_t attenuate,
- size_t depth)
+ CacheView *image_view,RandomInfo *random_info,const SegmentInfo *segment,
+ size_t attenuate,size_t depth)
{
ExceptionInfo
*exception;
local_info=(*segment);
local_info.x2=(double) x_mid;
local_info.y2=(double) y_mid;
- (void) PlasmaImageProxy(image,random_info,&local_info,attenuate,depth);
+ (void) PlasmaImageProxy(image,image_view,random_info,&local_info,
+ attenuate,depth);
local_info=(*segment);
local_info.y1=(double) y_mid;
local_info.x2=(double) x_mid;
- (void) PlasmaImageProxy(image,random_info,&local_info,attenuate,depth);
+ (void) PlasmaImageProxy(image,image_view,random_info,&local_info,
+ attenuate,depth);
local_info=(*segment);
local_info.x1=(double) x_mid;
local_info.y2=(double) y_mid;
- (void) PlasmaImageProxy(image,random_info,&local_info,attenuate,depth);
+ (void) PlasmaImageProxy(image,image_view,random_info,&local_info,
+ attenuate,depth);
local_info=(*segment);
local_info.x1=(double) x_mid;
local_info.y1=(double) y_mid;
- return(PlasmaImageProxy(image,random_info,&local_info,attenuate,depth));
+ return(PlasmaImageProxy(image,image_view,random_info,&local_info,
+ attenuate,depth));
}
- if (SetImageStorageClass(image,DirectClass) == MagickFalse)
- return(MagickFalse);
x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
if ((segment->x1 == (double) x_mid) && (segment->x2 == (double) x_mid) &&
Left pixel.
*/
x=(ssize_t) ceil(segment->x1-0.5);
- (void) GetOneVirtualPixel(image,x,(ssize_t) ceil(segment->y1-0.5),&u,
- exception);
- (void) GetOneVirtualPixel(image,x,(ssize_t) ceil(segment->y2-0.5),&v,
- exception);
- q=QueueAuthenticPixels(image,x,y_mid,1,1,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,x,(ssize_t)
+ ceil(segment->y1-0.5),&u,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,x,(ssize_t)
+ ceil(segment->y2-0.5),&v,exception);
+ q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
if (q == (PixelPacket *) NULL)
return(MagickTrue);
q->red=PlasmaPixel(random_info,(MagickRealType) (u.red+v.red)/2.0,
plasma);
q->blue=PlasmaPixel(random_info,(MagickRealType) (u.blue+v.blue)/2.0,
plasma);
- (void) SyncAuthenticPixels(image,exception);
+ (void) SyncCacheViewAuthenticPixels(image_view,exception);
if (segment->x1 != segment->x2)
{
/*
Right pixel.
*/
x=(ssize_t) ceil(segment->x2-0.5);
- (void) GetOneVirtualPixel(image,x,(ssize_t) ceil(segment->y1-0.5),&u,
- exception);
- (void) GetOneVirtualPixel(image,x,(ssize_t) ceil(segment->y2-0.5),&v,
- exception);
- q=QueueAuthenticPixels(image,x,y_mid,1,1,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,x,(ssize_t)
+ ceil(segment->y1-0.5),&u,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,x,(ssize_t)
+ ceil(segment->y2-0.5),&v,exception);
+ q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
if (q == (PixelPacket *) NULL)
return(MagickTrue);
q->red=PlasmaPixel(random_info,(MagickRealType) (u.red+v.red)/2.0,
q->green=PlasmaPixel(random_info,(MagickRealType) (u.green+v.green)/
2.0,plasma);
q->blue=PlasmaPixel(random_info,(MagickRealType) (u.blue+v.blue)/2.0,
- plasma);
- (void) SyncAuthenticPixels(image,exception);
+ plasma);
+ (void) SyncCacheViewAuthenticPixels(image_view,exception);
}
}
if ((segment->y1 != (double) y_mid) || (segment->y2 != (double) y_mid))
Bottom pixel.
*/
y=(ssize_t) ceil(segment->y2-0.5);
- (void) GetOneVirtualPixel(image,(ssize_t) ceil(segment->x1-0.5),y,&u,
- exception);
- (void) GetOneVirtualPixel(image,(ssize_t) ceil(segment->x2-0.5),y,&v,
- exception);
- q=QueueAuthenticPixels(image,x_mid,y,1,1,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,(ssize_t)
+ ceil(segment->x1-0.5),y,&u,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,(ssize_t)
+ ceil(segment->x2-0.5),y,&v,exception);
+ q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
if (q == (PixelPacket *) NULL)
return(MagickTrue);
q->red=PlasmaPixel(random_info,(MagickRealType) (u.red+v.red)/2.0,
2.0,plasma);
q->blue=PlasmaPixel(random_info,(MagickRealType) (u.blue+v.blue)/2.0,
plasma);
- (void) SyncAuthenticPixels(image,exception);
+ (void) SyncCacheViewAuthenticPixels(image_view,exception);
}
if (segment->y1 != segment->y2)
{
Top pixel.
*/
y=(ssize_t) ceil(segment->y1-0.5);
- (void) GetOneVirtualPixel(image,(ssize_t) ceil(segment->x1-0.5),y,&u,
- exception);
- (void) GetOneVirtualPixel(image,(ssize_t) ceil(segment->x2-0.5),y,&v,
- exception);
- q=QueueAuthenticPixels(image,x_mid,y,1,1,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,(ssize_t)
+ ceil(segment->x1-0.5),y,&u,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,(ssize_t)
+ ceil(segment->x2-0.5),y,&v,exception);
+ q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
if (q == (PixelPacket *) NULL)
return(MagickTrue);
q->red=PlasmaPixel(random_info,(MagickRealType) (u.red+v.red)/2.0,
2.0,plasma);
q->blue=PlasmaPixel(random_info,(MagickRealType) (u.blue+v.blue)/2.0,
plasma);
- (void) SyncAuthenticPixels(image,exception);
+ (void) SyncCacheViewAuthenticPixels(image_view,exception);
}
}
if ((segment->x1 != segment->x2) || (segment->y1 != segment->y2))
(void) GetOneVirtualPixel(image,x,y,&u,exception);
x=(ssize_t) ceil(segment->x2-0.5);
y=(ssize_t) ceil(segment->y2-0.5);
- (void) GetOneVirtualPixel(image,x,y,&v,exception);
- q=QueueAuthenticPixels(image,x_mid,y_mid,1,1,exception);
+ (void) GetOneCacheViewVirtualPixel(image_view,x,y,&v,exception);
+ q=QueueCacheViewAuthenticPixels(image_view,x_mid,y_mid,1,1,exception);
if (q == (PixelPacket *) NULL)
return(MagickTrue);
q->red=PlasmaPixel(random_info,(MagickRealType) (u.red+v.red)/2.0,
plasma);
q->blue=PlasmaPixel(random_info,(MagickRealType) (u.blue+v.blue)/2.0,
plasma);
- (void) SyncAuthenticPixels(image,exception);
+ (void) SyncCacheViewAuthenticPixels(image_view,exception);
}
if (((segment->x2-segment->x1) < 3.0) && ((segment->y2-segment->y1) < 3.0))
return(MagickTrue);
MagickExport MagickBooleanType PlasmaImage(Image *image,
const SegmentInfo *segment,size_t attenuate,size_t depth)
{
+ CacheView
+ *image_view;
+
MagickBooleanType
status;
assert(image->signature == MagickSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
+ if (SetImageStorageClass(image,DirectClass) == MagickFalse)
+ return(MagickFalse);
+ image_view=AcquireCacheView(image);
random_info=AcquireRandomInfo();
- status=PlasmaImageProxy(image,random_info,segment,attenuate,depth);
+ status=PlasmaImageProxy(image,image_view,random_info,segment,attenuate,depth);
random_info=DestroyRandomInfo(random_info);
+ image_view=DestroyCacheView(image_view);
return(status);
}
\f
%
*/
-static void UniqueColorsToImage(Image *image,CubeInfo *cube_info,
- const NodeInfo *node_info,ExceptionInfo *exception)
+static void UniqueColorsToImage(Image *unique_image,CacheView *unique_view,
+ CubeInfo *cube_info,const NodeInfo *node_info,ExceptionInfo *exception)
{
#define UniqueColorsImageTag "UniqueColors/Image"
/*
Traverse any children.
*/
- number_children=image->matte == MagickFalse ? 8UL : 16UL;
+ number_children=unique_image->matte == MagickFalse ? 8UL : 16UL;
for (i=0; i < (ssize_t) number_children; i++)
if (node_info->child[i] != (NodeInfo *) NULL)
- UniqueColorsToImage(image,cube_info,node_info->child[i],exception);
+ UniqueColorsToImage(unique_image,unique_view,cube_info,
+ node_info->child[i],exception);
if (node_info->level == (MaxTreeDepth-1))
{
register ColorPacket
p=node_info->list;
for (i=0; i < (ssize_t) node_info->number_unique; i++)
{
- q=QueueAuthenticPixels(image,cube_info->x,0,1,1,exception);
+ q=QueueCacheViewAuthenticPixels(unique_view,cube_info->x,0,1,1,
+ exception);
if (q == (PixelPacket *) NULL)
continue;
- indexes=GetAuthenticIndexQueue(image);
+ indexes=GetCacheViewAuthenticIndexQueue(unique_view);
*q=p->pixel;
- if (image->colorspace == CMYKColorspace)
+ if (unique_image->colorspace == CMYKColorspace)
*indexes=p->index;
- if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(unique_view,exception) == MagickFalse)
break;
cube_info->x++;
p++;
}
- if (image->progress_monitor != (MagickProgressMonitor) NULL)
+ if (unique_image->progress_monitor != (MagickProgressMonitor) NULL)
{
MagickBooleanType
proceed;
- proceed=SetImageProgress(image,UniqueColorsImageTag,
+ proceed=SetImageProgress(unique_image,UniqueColorsImageTag,
cube_info->progress,cube_info->colors);
if (proceed == MagickFalse)
status=MagickFalse;
MagickExport Image *UniqueImageColors(const Image *image,
ExceptionInfo *exception)
{
+ CacheView
+ *unique_view;
+
CubeInfo
*cube_info;
unique_image=DestroyImage(unique_image);
return((Image *) NULL);
}
- UniqueColorsToImage(unique_image,cube_info,cube_info->root,exception);
+ unique_view=AcquireCacheView(unique_image);
+ UniqueColorsToImage(unique_image,unique_view,cube_info,cube_info->root,
+ exception);
+ unique_view=DestroyCacheView(unique_view);
if (cube_info->colors < MaxColormapSize)
{
QuantizeInfo
%
*/
-#define MagickREALTYPEPI ((MagickRealType) 3.14159265358979323846264338327950288420L)
+#define MagickPIL ((MagickRealType) 3.14159265358979323846264338327950288420L)
static MagickRealType Bessel(const MagickRealType x,
const ResizeFilter *magick_unused(resize_filter))
http://www.ph.ed.ac.uk/%7ewjh/teaching/mo/slides/lens/lens.pdf.
*/
if (x == 0.0)
- return((MagickRealType) (0.25*MagickREALTYPEPI));
- return(BesselOrderOne((MagickRealType) (MagickREALTYPEPI*x))/(x+x));
+ return((MagickRealType) (0.25*MagickPIL));
+ return(BesselOrderOne((MagickRealType) (MagickPIL*x))/(x+x));
}
static MagickRealType Blackman(const MagickRealType x,
Refactored by Chantal Racette and Nicolas Robidoux to one trig
call and five flops.
*/
- const MagickRealType cospix = cos((double) (MagickREALTYPEPI*x));
+ const MagickRealType cospix = cos((double) (MagickPIL*x));
return(0.34+cospix*(0.5+cospix*0.16));
}
and 7 flops, taking advantage of the fact that the support of
Bohman is 1 (so that we know that sin(pi x) >= 0).
*/
- const double cospix = cos((double) (MagickREALTYPEPI*x));
+ const double cospix = cos((double) (MagickPIL*x));
const double sinpix = sqrt(1.0-cospix*cospix);
- return((MagickRealType) ((1.0-x)*cospix+(1.0/MagickREALTYPEPI)*sinpix));
+ return((MagickRealType) ((1.0-x)*cospix+(1.0/MagickPIL)*sinpix));
}
static MagickRealType Box(const MagickRealType x,
/*
Cosine window function: .5 + .5 cos(pi x).
*/
- const MagickRealType cospix = cos((double) (MagickREALTYPEPI*x));
+ const MagickRealType cospix = cos((double) (MagickPIL*x));
return(0.5+0.5*cospix);
}
/*
Offset cosine window function: .54 + .46 cos(pi x).
*/
- const MagickRealType cospix = cos((double) (MagickREALTYPEPI*x));
+ const MagickRealType cospix = cos((double) (MagickPIL*x));
return(0.54+0.46*cospix);
}
*/
if (x != 0.0)
{
- const MagickRealType pix = (MagickRealType) (MagickREALTYPEPI*x);
+ const MagickRealType pix = (MagickRealType) (MagickPIL*x);
return(sin((double) pix)/pix);
}
return(1.0);
*/
if (x > 4.0)
{
- const MagickRealType pix = (MagickRealType) (MagickREALTYPEPI*x);
+ const MagickRealType pix = (MagickRealType) (MagickPIL*x);
return(sin((double) pix)/pix);
}
{
{
#define LiquidRescaleImageTag "Rescale/Image"
+ CacheView
+ *rescale_view;
+
const char
*map;
}
GetMagickPixelPacket(rescale_image,&pixel);
(void) lqr_carver_scan_reset(carver);
+ rescale_view=AcquireCacheView(rescale_image);
while (lqr_carver_scan(carver,&x,&y,&packet) != 0)
{
register IndexPacket
register PixelPacket
*restrict q;
- q=QueueAuthenticPixels(rescale_image,x,y,1,1,exception);
+ q=QueueCacheviewAuthenticPixels(rescale_view,x,y,1,1,exception);
if (q == (PixelPacket *) NULL)
break;
- rescale_indexes=GetAuthenticIndexQueue(rescale_image);
+ rescale_indexes=GetCacheViewAuthenticIndexQueue(rescale_view);
pixel.red=QuantumRange*(packet[0]/255.0);
pixel.green=QuantumRange*(packet[1]/255.0);
pixel.blue=QuantumRange*(packet[2]/255.0);
pixel.opacity=QuantumRange*(packet[4]/255.0);
}
SetPixelPacket(rescale_image,&pixel,q,rescale_indexes);
- if (SyncAuthenticPixels(rescale_image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(rescale_view,exception) == MagickFalse)
break;
}
+ rescale_view=DestroyCacheView(rescale_view);
/*
Relinquish resources.
*/
MagickExport Image *ConsolidateCMYKImages(const Image *images,
ExceptionInfo *exception)
{
+ CacheView
+ *cmyk_view,
+ *image_view;
+
Image
*cmyk_image,
*cmyk_images;
if (SetImageStorageClass(cmyk_image,DirectClass) == MagickFalse)
break;
(void) SetImageColorspace(cmyk_image,CMYKColorspace);
+ image_view=AcquireCacheView(images);
+ cmyk_view=AcquireCacheView(cmyk_image);
for (y=0; y < (ssize_t) images->rows; y++)
{
register const PixelPacket
register PixelPacket
*restrict q;
- p=GetVirtualPixels(images,0,y,images->columns,1,exception);
- q=QueueAuthenticPixels(cmyk_image,0,y,cmyk_image->columns,1,exception);
+ p=GetCacheViewVirtualPixels(image_view,0,y,images->columns,1,exception);
+ q=QueueCacheViewAuthenticPixels(cmyk_view,0,y,cmyk_image->columns,1,
+ exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
break;
for (x=0; x < (ssize_t) images->columns; x++)
p++;
q++;
}
- if (SyncAuthenticPixels(cmyk_image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(cmyk_view,exception) == MagickFalse)
break;
}
+ cmyk_view=DestroyCacheView(cmyk_view);
+ image_view=DestroyCacheView(image_view);
images=GetNextImageInList(images);
if (images == (Image *) NULL)
break;
+ image_view=AcquireCacheView(images);
+ cmyk_view=AcquireCacheView(cmyk_image);
for (y=0; y < (ssize_t) images->rows; y++)
{
register const PixelPacket
register PixelPacket
*restrict q;
- p=GetVirtualPixels(images,0,y,images->columns,1,exception);
- q=GetAuthenticPixels(cmyk_image,0,y,cmyk_image->columns,1,exception);
+ p=GetCacheViewVirtualPixels(image_view,0,y,images->columns,1,exception);
+ q=GetCacheViewAuthenticPixels(cmyk_view,0,y,cmyk_image->columns,1,
+ exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
break;
for (x=0; x < (ssize_t) images->columns; x++)
p++;
q++;
}
- if (SyncAuthenticPixels(cmyk_image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(cmyk_view,exception) == MagickFalse)
break;
}
+ cmyk_view=DestroyCacheView(cmyk_view);
+ image_view=DestroyCacheView(image_view);
images=GetNextImageInList(images);
if (images == (Image *) NULL)
break;
+ image_view=AcquireCacheView(images);
+ cmyk_view=AcquireCacheView(cmyk_image);
for (y=0; y < (ssize_t) images->rows; y++)
{
register const PixelPacket
register PixelPacket
*restrict q;
- p=GetVirtualPixels(images,0,y,images->columns,1,exception);
- q=GetAuthenticPixels(cmyk_image,0,y,cmyk_image->columns,1,exception);
+ p=GetCacheViewVirtualPixels(image_view,0,y,images->columns,1,exception);
+ q=GetCacheViewAuthenticPixels(cmyk_view,0,y,cmyk_image->columns,1,
+ exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
break;
for (x=0; x < (ssize_t) images->columns; x++)
p++;
q++;
}
- if (SyncAuthenticPixels(cmyk_image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(cmyk_view,exception) == MagickFalse)
break;
}
+ cmyk_view=DestroyCacheView(cmyk_view);
+ image_view=DestroyCacheView(image_view);
images=GetNextImageInList(images);
if (images == (Image *) NULL)
break;
+ image_view=AcquireCacheView(images);
+ cmyk_view=AcquireCacheView(cmyk_image);
for (y=0; y < (ssize_t) images->rows; y++)
{
register const PixelPacket
register PixelPacket
*restrict q;
- p=GetVirtualPixels(images,0,y,images->columns,1,exception);
- q=GetAuthenticPixels(cmyk_image,0,y,cmyk_image->columns,1,exception);
+ p=GetCacheViewVirtualPixels(image_view,0,y,images->columns,1,exception);
+ q=GetCacheViewAuthenticPixels(cmyk_view,0,y,cmyk_image->columns,1,
+ exception);
if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL))
break;
- indexes=GetAuthenticIndexQueue(cmyk_image);
+ indexes=GetCacheViewAuthenticIndexQueue(cmyk_view);
for (x=0; x < (ssize_t) images->columns; x++)
{
indexes[x]=(IndexPacket) (QuantumRange-PixelIntensityToQuantum(p));
p++;
}
- if (SyncAuthenticPixels(cmyk_image,exception) == MagickFalse)
+ if (SyncCacheViewAuthenticPixels(cmyk_view,exception) == MagickFalse)
break;
}
+ cmyk_view=DestroyCacheView(cmyk_view);
+ image_view=DestroyCacheView(image_view);
AppendImageToList(&cmyk_images,cmyk_image);
images=GetNextImageInList(images);
if (images == (Image *) NULL)