diff --git a/magick/fx.c b/magick/fx.c
index fcf4a1f..88c76e6 100644
--- a/magick/fx.c
+++ b/magick/fx.c
@@ -2512,7 +2512,7 @@
{
alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,beta,
exception);
- return((MagickRealType) floor(alpha+0.5));
+ return((MagickRealType) floor(alpha));
}
if (LocaleCompare(expression,"i") == 0)
return(FxGetSymbol(fx_info,channel,x,y,expression,exception));
@@ -2650,9 +2650,7 @@
{
alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,beta,
exception);
- if (alpha >= 0.0)
- return((MagickRealType) floor((double) alpha+0.5));
- return((MagickRealType) ceil((double) alpha-0.5));
+ return((MagickRealType) floor((double) alpha+0.5));
}
if (LocaleCompare(expression,"r") == 0)
return(FxGetSymbol(fx_info,channel,x,y,expression,exception));
@@ -2718,6 +2716,14 @@
}
if (LocaleCompare(expression,"Transparent") == 0)
return(0.0);
+ if (LocaleNCompare(expression,"trunc",5) == 0)
+ {
+ alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,beta,
+ exception);
+ if (alpha >= 0.0)
+ return((MagickRealType) floor((double) alpha));
+ return((MagickRealType) ceil((double) alpha));
+ }
if (LocaleCompare(expression,"t") == 0)
return(FxGetSymbol(fx_info,channel,x,y,expression,exception));
break;