/* Define this for the OpenCL Accelerator */
#ifndef MAGICKCORE__OPENCL
-#define MAGICKCORE__OPENCL 1
#endif
/* Define to 2 if the system does not provide POSIX.1 features except with
*/
#define MagickPackageName "ImageMagick"
#define MagickCopyright "Copyright (C) 1999-2011 ImageMagick Studio LLC"
-#define MagickSVNRevision "exported"
+#define MagickSVNRevision "5364"
#define MagickLibVersion 0x700
#define MagickLibVersionText "7.0.0"
#define MagickLibVersionNumber 7,0,0
#define MagickLibAddendum "-0"
#define MagickLibInterface 7
#define MagickLibMinInterface 7
-#define MagickReleaseDate "2011-09-24"
+#define MagickReleaseDate "2011-09-25"
#define MagickChangeDate "20110801"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#if defined(MAGICKCORE_OPENMP_SUPPORT)
n=0;
p=CurrentContext->dash_pattern;
if (p != (const double *) NULL)
- while (*p++ != 0.0)
+ while (fabs(*p++) >= MagickEpsilon)
n++;
*number_elements=n;
dash_array=(double *) NULL;
*dash_pattern;
dash_pattern=AcquireString((char *) NULL);
- for (i=0; CurrentContext->dash_pattern[i] != 0.0; i++)
+ for (i=0; fabs(CurrentContext->dash_pattern[i]) >= MagickEpsilon; i++)
{
if (i != 0)
(void) ConcatenateString(&dash_pattern,",");
update=MagickFalse;
q=CurrentContext->dash_pattern;
if (q != (const double *) NULL)
- while (*q++ != 0.0)
+ while (fabs(*q++) < MagickEpsilon)
n_old++;
if ((n_old == 0) && (n_new == 0))
update=MagickFalse;
if (wand->debug != MagickFalse)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if ((wand->filter_off != MagickFalse) &&
- (CurrentContext->kerning != kerning))
+ ((CurrentContext->kerning-kerning) >= MagickEpsilon))
{
CurrentContext->kerning=kerning;
(void) MvgPrintf(wand,"kerning %lf\n",kerning);
if (wand->debug != MagickFalse)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if ((wand->filter_off != MagickFalse) &&
- (CurrentContext->interline_spacing != interline_spacing))
+ ((CurrentContext->interline_spacing-interline_spacing) >= MagickEpsilon))
{
CurrentContext->interline_spacing=interline_spacing;
(void) MvgPrintf(wand,"interline-spacing %lf\n",interline_spacing);
if (wand->debug != MagickFalse)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if ((wand->filter_off != MagickFalse) &&
- (CurrentContext->interword_spacing != interword_spacing))
+ ((CurrentContext->interword_spacing-interword_spacing) >= MagickEpsilon))
{
CurrentContext->interword_spacing=interword_spacing;
(void) MvgPrintf(wand,"interword-spacing %lf\n",interword_spacing);
% The format of the AdaptiveThresholdImage method is:
%
% MagickBooleanType MagickAdaptiveThresholdImage(MagickWand *wand,
-% const size_t width,const size_t height,const ssize_t offset)
+% const size_t width,const size_t height,const double bias)
%
% A description of each parameter follows:
%
%
% o height: the height of the local neighborhood.
%
-% o offset: the mean offset.
+% o offset: the mean bias.
%
*/
WandExport MagickBooleanType MagickAdaptiveThresholdImage(MagickWand *wand,
- const size_t width,const size_t height,const ssize_t offset)
+ const size_t width,const size_t height,const double bias)
{
Image
*threshold_image;
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
if (wand->images == (Image *) NULL)
ThrowWandException(WandError,"ContainsNoImages",wand->name);
- threshold_image=AdaptiveThresholdImage(wand->images,width,height,offset,
+ threshold_image=AdaptiveThresholdImage(wand->images,width,height,bias,
wand->exception);
if (threshold_image == (Image *) NULL)
return(MagickFalse);
return(MagickFalse);
(void) CloneString(&draw_info->text,text);
(void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",x,y);
- draw_info->affine.sx=cos(DegreesToRadians(fmod(angle,360.0)));
- draw_info->affine.rx=sin(DegreesToRadians(fmod(angle,360.0)));
- draw_info->affine.ry=(-sin(DegreesToRadians(fmod(angle,360.0))));
- draw_info->affine.sy=cos(DegreesToRadians(fmod(angle,360.0)));
+ draw_info->affine.sx=cos((double) DegreesToRadians(fmod(angle,360.0)));
+ draw_info->affine.rx=sin((double) DegreesToRadians(fmod(angle,360.0)));
+ draw_info->affine.ry=(-sin((double) DegreesToRadians(fmod(angle,360.0))));
+ draw_info->affine.sy=cos((double) DegreesToRadians(fmod(angle,360.0)));
(void) CloneString(&draw_info->geometry,geometry);
status=AnnotateImage(wand->images,draw_info,&wand->images->exception);
draw_info=DestroyDrawInfo(draw_info);
MagickAdaptiveSharpenImage(MagickWand *,const double,const double,
const double),
MagickAdaptiveThresholdImage(MagickWand *,const size_t,const size_t,
- const ssize_t),
+ const double),
MagickAddImage(MagickWand *,const MagickWand *),
MagickAddNoiseImage(MagickWand *,const NoiseType),
MagickAffineTransformImage(MagickWand *,const DrawingWand *),
% o number_wands: the number of pixel wands.
%
*/
-
-WandExport PixelWand **PixelGetPreviousRow(PixelIterator *iterator)
-{
- size_t
- number_wands;
-
- return(PixelGetPreviousIteratorRow(iterator,&number_wands));
-}
-
WandExport PixelWand **PixelGetPreviousIteratorRow(PixelIterator *iterator,
size_t *number_wands)
{
for (i=0; i < (ssize_t) image->colors; i++)
{
- chunk[4+i*3]=ScaleQuantumToChar(image->colormap[i].red) & 0xff;
- chunk[5+i*3]=ScaleQuantumToChar(image->colormap[i].green) & 0xff;
- chunk[6+i*3]=ScaleQuantumToChar(image->colormap[i].blue) & 0xff;
+ chunk[4+i*3]=(unsigned char) (ScaleQuantumToChar(
+ image->colormap[i].red) & 0xff);
+ chunk[5+i*3]=(unsigned char) (ScaleQuantumToChar(
+ image->colormap[i].green) & 0xff);
+ chunk[6+i*3]=(unsigned char) (ScaleQuantumToChar(
+ image->colormap[i].blue) & 0xff);
}
(void) WriteBlob(image,data_length+4,chunk);
(void) FormatLocaleString(text,MaxTextExtent,"%g",
brightness_standard_deviation);
(void) SetImageProperty(image,"filter:brightness:standard-deviation",text);
- if (brightness_standard_deviation != 0)
+ if (fabs(brightness_standard_deviation) >= MagickEpsilon)
brightness_kurtosis=(brightness_sum_x4/area-4.0*brightness_mean*
brightness_sum_x3/area+6.0*brightness_mean*brightness_mean*
brightness_sum_x2/area-3.0*brightness_mean*brightness_mean*
(void) FormatLocaleString(text,MaxTextExtent,"%g",
saturation_standard_deviation);
(void) SetImageProperty(image,"filter:saturation:standard-deviation",text);
- if (saturation_standard_deviation != 0)
+ if (fabs(saturation_standard_deviation) >= MagickEpsilon)
saturation_kurtosis=(saturation_sum_x4/area-4.0*saturation_mean*
saturation_sum_x3/area+6.0*saturation_mean*saturation_mean*
saturation_sum_x2/area-3.0*saturation_mean*saturation_mean*
saturation_standard_deviation)-3.0;
(void) FormatLocaleString(text,MaxTextExtent,"%g",saturation_kurtosis);
(void) SetImageProperty(image,"filter:saturation:kurtosis",text);
- if (saturation_standard_deviation != 0)
+ if (fabs(saturation_standard_deviation) >= MagickEpsilon)
saturation_skewness=(saturation_sum_x3/area-3.0*saturation_mean*
saturation_sum_x2/area+2.0*saturation_mean*saturation_mean*
saturation_mean)/(saturation_standard_deviation*