ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
kernel_info->width=width;
kernel_info->height=width;
- kernel_info->values=(double *) AcquireAlignedMemory(kernel_info->width,
- kernel_info->width*sizeof(*kernel_info->values));
- if (kernel_info->values == (double *) NULL)
+ kernel_info->values=(MagickRealType *) AcquireAlignedMemory(
+ kernel_info->width,kernel_info->width*sizeof(*kernel_info->values));
+ if (kernel_info->values == (MagickRealType *) NULL)
{
kernel_info=DestroyKernelInfo(kernel_info);
ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
{
for (u=(-j); u <= j; u++)
{
- kernel_info->values[i]=(-1.0);
+ kernel_info->values[i]=(MagickRealType) (-1.0);
i++;
}
}
- kernel_info->values[i/2]=(double) (width*width-1.0);
+ kernel_info->values[i/2]=(MagickRealType) (width*width-1.0);
edge_image=ConvolveImage(image,kernel_info,exception);
if (edge_image != (Image *) NULL)
(void) ClampImage(edge_image,exception);
ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
kernel_info->width=width;
kernel_info->height=width;
- kernel_info->values=(double *) AcquireAlignedMemory(kernel_info->width,
- kernel_info->width*sizeof(*kernel_info->values));
- if (kernel_info->values == (double *) NULL)
+ kernel_info->values=(MagickRealType *) AcquireAlignedMemory(
+ kernel_info->width,kernel_info->width*sizeof(*kernel_info->values));
+ if (kernel_info->values == (MagickRealType *) NULL)
{
kernel_info=DestroyKernelInfo(kernel_info);
ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
{
for (u=(-j); u <= j; u++)
{
- kernel_info->values[i]=(double) (((u < 0) || (v < 0) ? -8.0 : 8.0)*
- exp(-((double) u*u+v*v)/(2.0*MagickSigma*MagickSigma))/
+ kernel_info->values[i]=(MagickRealType) (((u < 0) || (v < 0) ? -8.0 :
+ 8.0)*exp(-((double) u*u+v*v)/(2.0*MagickSigma*MagickSigma))/
(2.0*MagickPI*MagickSigma*MagickSigma));
if (u != k)
kernel_info->values[i]=0.0;
kernel_info->width=width;
kernel_info->height=width;
kernel_info->signature=MagickSignature;
- kernel_info->values=(double *) AcquireAlignedMemory(
+ kernel_info->values=(MagickRealType *) AcquireAlignedMemory(
kernel_info->width,kernel_info->width*sizeof(*kernel_info->values));
- if (kernel_info->values == (double *) NULL)
+ if (kernel_info->values == (MagickRealType *) NULL)
{
kernel_info=DestroyKernelInfo(kernel_info);
ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
{
for (u=(-j); u <= j; u++)
{
- kernel_info->values[i]=(double) (exp(-((double) u*u+v*v)/(2.0*
+ kernel_info->values[i]=(MagickRealType) (exp(-((double) u*u+v*v)/(2.0*
MagickSigma*MagickSigma))/(2.0*MagickPI*MagickSigma*MagickSigma));
i++;
}
kernel_info->width=width;
kernel_info->height=width;
kernel_info->signature=MagickSignature;
- kernel_info->values=(double *) AcquireAlignedMemory(
+ kernel_info->values=(MagickRealType *) AcquireAlignedMemory(
kernel_info->width,kernel_info->width*sizeof(*kernel_info->values));
- if (kernel_info->values == (double *) NULL)
+ if (kernel_info->values == (MagickRealType *) NULL)
{
kernel_info=DestroyKernelInfo(kernel_info);
ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
{
for (u=(-j); u <= j; u++)
{
- kernel_info->values[i]=(double) (-exp(-((double) u*u+v*v)/(2.0*
+ kernel_info->values[i]=(MagickRealType) (-exp(-((double) u*u+v*v)/(2.0*
MagickSigma*MagickSigma))/(2.0*MagickPI*MagickSigma*MagickSigma));
normalize+=kernel_info->values[i];
i++;
}
kernel_info->values[i/2]=(double) ((-2.0)*normalize);
sharp_image=ConvolveImage(image,kernel_info,exception);
+ if (sharp_image != (Image *) NULL)
+ (void) ClampImage(sharp_image,exception);
kernel_info=DestroyKernelInfo(kernel_info);
return(sharp_image);
}
}
unsharp_image->type=image->type;
unsharp_view=DestroyCacheView(unsharp_view);
+ if (unsharp_image != (Image *) NULL)
+ (void) ClampImage(unsharp_image,exception);
image_view=DestroyCacheView(image_view);
if (status == MagickFalse)
unsharp_image=DestroyImage(unsharp_image);
}
/* Read in the kernel values from rest of input string argument */
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
kernel->minimum = +MagickHuge;
kernel->maximum = -MagickHuge;
{
kernel->height = kernel->width = (size_t) 1;
kernel->x = kernel->y = (ssize_t) 0;
- kernel->values=(double *) AcquireAlignedMemory(1,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(1,
sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
kernel->maximum = kernel->values[0] = args->rho;
break;
kernel->width = GetOptimalKernelWidth2D(args->rho,sigma2);
kernel->height = kernel->width;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
/* WARNING: The following generates a 'sampled gaussian' kernel.
kernel->x = (ssize_t) (kernel->width-1)/2;
kernel->y = 0;
kernel->negative_range = kernel->positive_range = 0.0;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
#if 1
kernel->x = kernel->y = 0;
kernel->height = 1;
kernel->negative_range = kernel->positive_range = 0.0;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
/* A comet blur is half a 1D gaussian curve, so that the object is
order_f = fact(kernel->width-1);
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
/* set all kernel values within diamond area to scale given */
if (kernel == (KernelInfo *) NULL)
return(kernel);
kernel->type = type;
- kernel->values[3] = +(double) MagickSQ2;
- kernel->values[5] = -(double) MagickSQ2;
+ kernel->values[3] = +(MagickRealType) MagickSQ2;
+ kernel->values[5] = -(MagickRealType) MagickSQ2;
CalcKernelMetaData(kernel); /* recalculate meta-data */
break;
case 2:
if (kernel == (KernelInfo *) NULL)
return(kernel);
kernel->type = type;
- kernel->values[1] = kernel->values[3]= +(double) MagickSQ2;
- kernel->values[5] = kernel->values[7]= -(double) MagickSQ2;
+ kernel->values[1] = kernel->values[3]= +(MagickRealType) MagickSQ2;
+ kernel->values[5] = kernel->values[7]= -(MagickRealType) MagickSQ2;
CalcKernelMetaData(kernel); /* recalculate meta-data */
ScaleKernelInfo(kernel, (double) (1.0/2.0*MagickSQ2), NoValue);
break;
if (kernel == (KernelInfo *) NULL)
return(kernel);
kernel->type = type;
- kernel->values[3] = +(double) MagickSQ2;
- kernel->values[5] = -(double) MagickSQ2;
+ kernel->values[3] = +(MagickRealType) MagickSQ2;
+ kernel->values[5] = -(MagickRealType) MagickSQ2;
CalcKernelMetaData(kernel); /* recalculate meta-data */
ScaleKernelInfo(kernel, (double) (1.0/2.0*MagickSQ2), NoValue);
break;
if (kernel == (KernelInfo *) NULL)
return(kernel);
kernel->type = type;
- kernel->values[0] = +(double) MagickSQ2;
- kernel->values[8] = -(double) MagickSQ2;
+ kernel->values[0] = +(MagickRealType) MagickSQ2;
+ kernel->values[8] = -(MagickRealType) MagickSQ2;
CalcKernelMetaData(kernel);
ScaleKernelInfo(kernel, (double) (1.0/2.0*MagickSQ2), NoValue);
break;
if (kernel == (KernelInfo *) NULL)
return(kernel);
kernel->type = type;
- kernel->values[2] = -(double) MagickSQ2;
- kernel->values[6] = +(double) MagickSQ2;
+ kernel->values[2] = -(MagickRealType) MagickSQ2;
+ kernel->values[6] = +(MagickRealType) MagickSQ2;
CalcKernelMetaData(kernel);
ScaleKernelInfo(kernel, (double) (1.0/2.0*MagickSQ2), NoValue);
break;
kernel->width = kernel->height = ((size_t)args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
/* set all kernel values within diamond area to scale given */
kernel->y = (ssize_t) args->psi;
scale = 1.0;
}
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
/* set all kernel values to scale given */
kernel->width = kernel->height = ((size_t)args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
for ( i=0, v=-kernel->y; v <= (ssize_t)kernel->y; v++)
kernel->width = kernel->height = (size_t)fabs(args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
for ( i=0, v=-kernel->y; v <= (ssize_t)kernel->y; v++)
kernel->width = kernel->height = ((size_t)args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
/* set all kernel values along axises to given scale */
kernel->width = kernel->height = ((size_t)args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
/* set all kernel values along axises to given scale */
kernel->height = kernel->width;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
/* set a ring of points of 'scale' ( 0.0 for PeaksKernel ) */
kernel->width = kernel->height = ((size_t)args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
for ( i=0, v=-kernel->y; v <= (ssize_t)kernel->y; v++)
kernel->width = kernel->height = ((size_t)args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
for ( i=0, v=-kernel->y; v <= (ssize_t)kernel->y; v++)
kernel->width = kernel->height = ((size_t)args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
for ( i=0, v=-kernel->y; v <= (ssize_t)kernel->y; v++)
kernel->width = kernel->height = ((size_t)args->rho)*2+1;
kernel->x = kernel->y = (ssize_t) (kernel->width-1)/2;
- kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (kernel->values == (double *) NULL)
+ if (kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(kernel));
for ( i=0, v=-kernel->y; v <= (ssize_t)kernel->y; v++)
*new_kernel=(*kernel); /* copy values in structure */
/* replace the values with a copy of the values */
- new_kernel->values=(double *) AcquireAlignedMemory(kernel->width,
+ new_kernel->values=(MagickRealType *) AcquireAlignedMemory(kernel->width,
kernel->height*sizeof(*kernel->values));
- if (new_kernel->values == (double *) NULL)
+ if (new_kernel->values == (MagickRealType *) NULL)
return(DestroyKernelInfo(new_kernel));
for (i=0; i < (ssize_t) (kernel->width*kernel->height); i++)
new_kernel->values[i]=kernel->values[i];
assert(kernel != (KernelInfo *) NULL);
if ( kernel->next != (KernelInfo *) NULL )
kernel->next=DestroyKernelInfo(kernel->next);
- kernel->values=(double *) RelinquishAlignedMemory(kernel->values);
+ kernel->values=(MagickRealType *) RelinquishAlignedMemory(kernel->values);
kernel=(KernelInfo *) RelinquishMagickMemory(kernel);
return(kernel);
}
PixelInfo
result;
- register ssize_t
- v;
-
- register const double
+ register const MagickRealType
*restrict k;
register const Quantum
*restrict k_pixels;
+ register ssize_t
+ v;
+
/* Copy input image to the output image for unused channels
* This removes need for 'cloning' a new image every iteration
*/
for (x=0; x < (ssize_t) image->columns; x++)
{
- ssize_t
- v;
-
- register ssize_t
- u;
+ PixelInfo
+ result,
+ min,
+ max;
- register const double
+ register const MagickRealType
*restrict k;
register const Quantum
*restrict k_pixels;
- PixelInfo
- result,
- min,
- max;
+ register ssize_t
+ u;
+
+ ssize_t
+ v;
/* Copy input image to the output image for unused channels
* This removes need for 'cloning' a new image every iteration
for (x=0; x < (ssize_t) image->columns; x++)
{
- ssize_t
- v;
-
- register ssize_t
- u;
+ PixelInfo
+ result;
- register const double
+ register const MagickRealType
*restrict k;
register const Quantum
*restrict k_pixels;
- PixelInfo
- result;
+ register ssize_t
+ u;
+
+ ssize_t
+ v;
/* Starting Defaults */
GetPixelInfo(image,&result);
for (x=(ssize_t)image->columns-1; x >= 0; x--)
{
- ssize_t
- v;
-
- register ssize_t
- u;
+ PixelInfo
+ result;
- register const double
+ register const MagickRealType
*restrict k;
register const Quantum
*restrict k_pixels;
- PixelInfo
- result;
+ register ssize_t
+ u;
+
+ ssize_t
+ v;
/* Default - previously modified pixel */
GetPixelInfo(image,&result);
}
else if ( kernel->width == kernel->height )
{ /* Rotate a square array of values by 90 degrees */
- { register size_t
+ { register ssize_t
i,j,x,y;
- register double
+
+ register MagickRealType
*k,t;
+
k=kernel->values;
- for( i=0, x=kernel->width-1; i<=x; i++, x--)
- for( j=0, y=kernel->height-1; j<y; j++, y--)
+ for( i=0, x=(ssize_t) kernel->width-1; i<=x; i++, x--)
+ for( j=0, y=(ssize_t) kernel->height-1; j<y; j++, y--)
{ t = k[i+j*kernel->width];
k[i+j*kernel->width] = k[j+x*kernel->width];
k[j+x*kernel->width] = k[x+y*kernel->width];
double
t;
- register double
+ register MagickRealType
*k;
ssize_t
(void) FormatLocaleFile(stderr," %*s", GetMagickPrecision()+3, "nan");
else
(void) FormatLocaleFile(stderr," %*.*lg", GetMagickPrecision()+3,
- GetMagickPrecision(), k->values[i]);
+ GetMagickPrecision(), (double) k->values[i]);
(void) FormatLocaleFile(stderr,"\n");
}
}