#include "magick/studio.h"
#include "magick/accelerate-private.h"
#include "magick/annotate.h"
#include "magick/artifact.h"
#include "magick/attribute.h"
#include "magick/cache.h"
#include "magick/cache-view.h"
#include "magick/channel.h"
#include "magick/color.h"
#include "magick/color-private.h"
#include "magick/colorspace.h"
#include "magick/colorspace-private.h"
#include "magick/composite.h"
#include "magick/decorate.h"
#include "magick/distort.h"
#include "magick/draw.h"
#include "magick/effect.h"
#include "magick/enhance.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
#include "magick/fx.h"
#include "magick/fx-private.h"
#include "magick/gem.h"
#include "magick/geometry.h"
#include "magick/layer.h"
#include "magick/list.h"
#include "magick/log.h"
#include "magick/image.h"
#include "magick/image-private.h"
#include "magick/magick.h"
#include "magick/memory_.h"
#include "magick/memory-private.h"
#include "magick/monitor.h"
#include "magick/monitor-private.h"
#include "magick/opencl-private.h"
#include "magick/option.h"
#include "magick/pixel-accessor.h"
#include "magick/pixel-private.h"
#include "magick/property.h"
#include "magick/quantum.h"
#include "magick/quantum-private.h"
#include "magick/random_.h"
#include "magick/random-private.h"
#include "magick/resample.h"
#include "magick/resample-private.h"
#include "magick/resize.h"
#include "magick/resource_.h"
#include "magick/splay-tree.h"
#include "magick/statistic.h"
#include "magick/string_.h"
#include "magick/string-private.h"
#include "magick/thread-private.h"
#include "magick/threshold.h"
#include "magick/transform.h"
#include "magick/utility.h"
Data Structures | |
struct | _FxInfo |
Defines | |
#define | FxMaxParenthesisDepth 58 |
#define | FxMaxSubexpressionDepth 200 |
#define | FxReturn(value) |
#define | FxParseConditional(subexpression, sentinal, p, q) |
#define | FxImageTag "Fx/Image" |
Enumerations | |
enum | FxOperator { BitwiseAndAssignmentOperator = 0xd9U, BitwiseOrAssignmentOperator, LeftShiftAssignmentOperator, RightShiftAssignmentOperator, PowerAssignmentOperator, ModuloAssignmentOperator, PlusAssignmentOperator, SubtractAssignmentOperator, MultiplyAssignmentOperator, DivideAssignmentOperator, IncrementAssignmentOperator, DecrementAssignmentOperator, LeftShiftOperator, RightShiftOperator, LessThanEqualOperator, GreaterThanEqualOperator, EqualOperator, NotEqualOperator, LogicalAndOperator, LogicalOrOperator, ExponentialNotation } |
Functions | |
MagickExport FxInfo * | AcquireFxInfo (const Image *images, const char *expression) |
MagickExport FxInfo * | DestroyFxInfo (FxInfo *fx_info) |
static const double * | GetFxSymbolValue (FxInfo *fx_info, const char *symbol) |
static MagickBooleanType | SetFxSymbolValue (FxInfo *magick_restrict fx_info, const char *magick_restrict symbol, const double value) |
static double | FxChannelStatistics (FxInfo *fx_info, const Image *image, ChannelType channel, const char *symbol, ExceptionInfo *exception) |
static double | FxEvaluateSubexpression (FxInfo *, const ChannelType, const ssize_t, const ssize_t, const char *, const size_t, double *, ExceptionInfo *) |
static MagickBooleanType | IsFxFunction (const char *expression, const char *name, const size_t length) |
static MagickOffsetType | FxGCD (MagickOffsetType alpha, MagickOffsetType beta) |
static const char * | FxSubexpression (const char *expression, ExceptionInfo *exception) |
static double | FxGetSymbol (FxInfo *fx_info, const ChannelType channel, const ssize_t x, const ssize_t y, const char *expression, const size_t depth, ExceptionInfo *exception) |
static const char * | FxOperatorPrecedence (const char *expression, ExceptionInfo *exception) |
MagickExport MagickBooleanType | FxEvaluateExpression (FxInfo *fx_info, double *alpha, ExceptionInfo *exception) |
MagickExport MagickBooleanType | FxPreprocessExpression (FxInfo *fx_info, double *alpha, ExceptionInfo *exception) |
MagickExport MagickBooleanType | FxEvaluateChannelExpression (FxInfo *fx_info, const ChannelType channel, const ssize_t x, const ssize_t y, double *alpha, ExceptionInfo *exception) |
static FxInfo ** | DestroyFxThreadSet (FxInfo **fx_info) |
static FxInfo ** | AcquireFxThreadSet (const Image *image, const char *expression, ExceptionInfo *exception) |
MagickExport Image * | FxImage (const Image *image, const char *expression, ExceptionInfo *exception) |
MagickExport Image * | FxImageChannel (const Image *image, const ChannelType channel, const char *expression, ExceptionInfo *exception) |
#define FxImageTag "Fx/Image" |
Referenced by FxImageChannel().
#define FxMaxParenthesisDepth 58 |
Referenced by FxEvaluateSubexpression().
#define FxMaxSubexpressionDepth 200 |
Referenced by FxEvaluateSubexpression().
#define FxParseConditional | ( | subexpression, | |||
sentinal, | |||||
p, | |||||
q | ) |
{ \ p=subexpression; \ for (q=(char *) p; (*q != (sentinal)) && (*q != '\0'); q++) \ if (*q == '(') \ { \ for (q++; (*q != ')') && (*q != '\0'); q++); \ if (*q == '\0') \ break; \ } \ if (*q == '\0') \ { \ (void) ThrowMagickException(exception,GetMagickModule(), \ OptionError,"UnableToParseExpression","`%s'",subexpression); \ FxReturn(0.0); \ } \ if (strlen(q) == 1) \ *(q+1)='\0'; \ *q='\0'; \ }
Referenced by FxEvaluateSubexpression().
#define FxReturn | ( | value | ) |
{ \ subexpression=DestroyString(subexpression); \ return(value); \ }
Referenced by FxEvaluateSubexpression().
enum FxOperator |
References AcquireCriticalMemory(), AcquireExceptionInfo(), AcquireQuantumMemory(), AcquireRandomInfo(), AcquireVirtualCacheView(), BitwiseAndAssignmentOperator, BitwiseOrAssignmentOperator, _FxInfo::colors, CompareSplayTreeString(), ConstantString(), DecrementAssignmentOperator, DivideAssignmentOperator, EqualOperator, _FxInfo::exception, ExponentialNotation, _FxInfo::expression, _FxInfo::file, GetFirstImageInList(), GetImageListLength(), GreaterThanEqualOperator, _FxInfo::images, IncrementAssignmentOperator, LeftShiftAssignmentOperator, LeftShiftOperator, LessThanEqualOperator, LogicalAndOperator, LogicalOrOperator, ModuloAssignmentOperator, MultiplyAssignmentOperator, NewSplayTree(), _Image::next, NotEqualOperator, PlusAssignmentOperator, PowerAssignmentOperator, _FxInfo::random_info, RelinquishMagickMemory(), ResourceLimitFatalError, RightShiftAssignmentOperator, RightShiftOperator, SubstituteString(), SubtractAssignmentOperator, _FxInfo::symbols, ThrowFatalException, and _FxInfo::view.
static FxInfo** AcquireFxThreadSet | ( | const Image * | image, | |
const char * | expression, | |||
ExceptionInfo * | exception | |||
) | [static] |
References AcquireFxInfo(), AcquireQuantumMemory(), ConstantString(), DestroyFxThreadSet(), DestroyString(), _Image::filename, FileToString(), FxPreprocessExpression(), GetMagickModule, GetMagickResourceLimit(), MagickFalse, ResourceLimitError, ThreadResource, and ThrowMagickException().
Referenced by FxImageChannel().
References _FxInfo::colors, DestroyCacheView(), DestroyExceptionInfo(), DestroyRandomInfo(), DestroySplayTree(), DestroyString(), _FxInfo::exception, _FxInfo::expression, GetImageListLength(), _FxInfo::images, _FxInfo::random_info, RelinquishMagickMemory(), _FxInfo::symbols, and _FxInfo::view.
Referenced by DestroyFxThreadSet(), GetImageProperty(), and InterpretImageProperties().
References DestroyFxInfo(), GetMagickResourceLimit(), RelinquishMagickMemory(), and ThreadResource.
Referenced by AcquireFxThreadSet(), and FxImageChannel().
static double FxChannelStatistics | ( | FxInfo * | fx_info, | |
const Image * | image, | |||
ChannelType | channel, | |||
const char * | symbol, | |||
ExceptionInfo * | exception | |||
) | [static] |
References CopyMagickString(), FormatLocaleString(), GetFxSymbolValue(), GetImageChannelDepth(), GetImageChannelKurtosis(), GetImageChannelMean(), GetImageChannelRange(), LocaleNCompare(), MagickChannelOptions, MagickFalse, MagickTrue, MaxTextExtent, ParseCommandOption(), QuantumScale, and SetFxSymbolValue().
Referenced by FxGetSymbol().
MagickExport MagickBooleanType FxEvaluateChannelExpression | ( | FxInfo * | fx_info, | |
const ChannelType | channel, | |||
const ssize_t | x, | |||
const ssize_t | y, | |||
double * | alpha, | |||
ExceptionInfo * | exception | |||
) |
References _FxInfo::expression, FxEvaluateSubexpression(), MagickFalse, MagickTrue, OptionError, and _ExceptionInfo::severity.
Referenced by FxEvaluateExpression(), FxImageChannel(), FxPreprocessExpression(), GetImageProperty(), and InterpretImageProperties().
MagickExport MagickBooleanType FxEvaluateExpression | ( | FxInfo * | fx_info, | |
double * | alpha, | |||
ExceptionInfo * | exception | |||
) |
References FxEvaluateChannelExpression(), and GrayChannel.
static double FxEvaluateSubexpression | ( | FxInfo * | fx_info, | |
const ChannelType | channel, | |||
const ssize_t | x, | |||
const ssize_t | y, | |||
const char * | expression, | |||
const size_t | depth, | |||
double * | beta, | |||
ExceptionInfo * | exception | |||
) | [static] |
References AcquireString(), AlphaChannel, BitwiseAndAssignmentOperator, BitwiseOrAssignmentOperator, BlackChannel, BlueChannel, ClearMagickException(), CMYKColorspace, _Image::colorspace, CopyMagickString(), CyanChannel, DecrementAssignmentOperator, DivideAssignmentOperator, EqualOperator, ErrorException, ExponentialNotation, _FxInfo::file, _Image::filename, FormatLocaleFile(), FxGCD(), FxGetSymbol(), FxMaxParenthesisDepth, FxMaxSubexpressionDepth, FxOperatorPrecedence(), FxParseConditional, FxReturn, GetMagickModule, GetMagickPrecision(), GetPseudoRandomValue(), GRAYColorspace, GreaterThanEqualOperator, GreenChannel, _FxInfo::images, IncrementAssignmentOperator, InterpretSiPrefixValue(), IsFxFunction(), IsNaN, LeftShiftAssignmentOperator, LeftShiftOperator, LessThanEqualOperator, LocaleCompare(), LocaleNCompare(), LogicalAndOperator, LogicalOrOperator, MagentaChannel, MagickEpsilon, MagickFalse, MagickPathExtent, MagickPHI, MagickPI, MaxTextExtent, ModuloAssignmentOperator, MultiplyAssignmentOperator, NotEqualOperator, OptionError, PerceptibleReciprocal(), PlusAssignmentOperator, PowerAssignmentOperator, QuantumRange, QuantumScale, _FxInfo::random_info, RedChannel, RightShiftAssignmentOperator, RightShiftOperator, SetFxSymbolValue(), _ExceptionInfo::severity, SubtractAssignmentOperator, ThrowMagickException(), and YellowChannel.
Referenced by FxEvaluateChannelExpression(), and FxGetSymbol().
static MagickOffsetType FxGCD | ( | MagickOffsetType | alpha, | |
MagickOffsetType | beta | |||
) | [static] |
Referenced by FxEvaluateSubexpression().
static double FxGetSymbol | ( | FxInfo * | fx_info, | |
const ChannelType | channel, | |||
const ssize_t | x, | |||
const ssize_t | y, | |||
const char * | expression, | |||
const size_t | depth, | |||
ExceptionInfo * | exception | |||
) | [static] |
References AcquireString(), AddValueToSplayTree(), BlackChannel, _MagickPixelPacket::blue, BlueChannel, _GeometryInfo::chi, ChiValue, ClampToQuantum(), CloneMagickPixelPacket(), CMYKColorspace, _FxInfo::colors, _Image::colorspace, _Image::columns, ConstantString(), ConvertRGBToHSL(), CopyMagickString(), CyanChannel, DefaultChannels, DestroyString(), _FxInfo::exception, _Image::extent, _Image::filename, FxChannelStatistics(), FxEvaluateSubexpression(), GetBlobSize(), GetFxSymbolValue(), GetImageChannelDepth(), GetImageFromList(), GetImageIndexInList(), GetImageListLength(), GetMagickModule, GetMagickPixelIntensity(), GetMagickPixelPacket(), GetPixelAlpha, GetValueFromSplayTree(), _MagickPixelPacket::green, GreenChannel, _RectangleInfo::height, ImageError, _FxInfo::images, _MagickPixelPacket::index, IndexChannel, _Image::interpolate, InterpolateMagickPixelPacket(), IsFxFunction(), LocaleCompare(), LocaleNCompare(), MagentaChannel, MagickFalse, _MagickPixelPacket::matte, MaxTextExtent, _MagickPixelPacket::opacity, OpacityChannel, OptionError, _Image::page, ParseGeometry(), PerceptibleReciprocal(), _GeometryInfo::psi, PsiValue, _Image::quality, QuantumScale, QueryMagickColor(), _MagickPixelPacket::red, RedChannel, _GeometryInfo::rho, RhoValue, _Image::rows, SetFxSymbolValue(), _GeometryInfo::sigma, SigmaValue, StripString(), ThrowMagickException(), _FxInfo::view, _RectangleInfo::width, _RectangleInfo::x, _PointInfo::x, _Image::x_resolution, _GeometryInfo::xi, XiValue, _RectangleInfo::y, _PointInfo::y, _Image::y_resolution, and YellowChannel.
Referenced by FxEvaluateSubexpression().
MagickExport Image* FxImage | ( | const Image * | image, | |
const char * | expression, | |||
ExceptionInfo * | exception | |||
) |
References FxImageChannel(), and GrayChannel.
MagickExport Image* FxImageChannel | ( | const Image * | image, | |
const ChannelType | channel, | |||
const char * | expression, | |||
ExceptionInfo * | exception | |||
) |
References AcquireAuthenticCacheView(), AcquireFxThreadSet(), BlueChannel, ClampToQuantum(), CloneImage(), CMYKColorspace, _Image::colorspace, _Image::columns, _Image::debug, DestroyCacheView(), DestroyFxThreadSet(), DestroyImage(), DirectClass, _Image::exception, _Image::filename, FxEvaluateChannelExpression(), FxImageTag, GetCacheViewAuthenticIndexQueue(), GetCacheViewAuthenticPixels(), GetMagickModule, GetOpenMPThreadId(), GreenChannel, IndexChannel, InheritException(), LogMagickEvent(), magick_restrict, MagickCoreSignature, MagickFalse, MagickTrue, _Image::matte, OpacityChannel, _Image::progress_monitor, QuantumRange, RedChannel, _Image::rows, SetImageProgress(), SetImageStorageClass(), SetPixelBlue, SetPixelGreen, SetPixelIndex, SetPixelOpacity, SetPixelRed, _Image::signature, SyncCacheViewAuthenticPixels(), and TraceEvent.
Referenced by FxImage().
static const char* FxOperatorPrecedence | ( | const char * | expression, | |
ExceptionInfo * | exception | |||
) | [static] |
References BitwiseAndAssignmentOperator, BitwiseOrAssignmentOperator, DecrementAssignmentOperator, DivideAssignmentOperator, EqualOperator, ExponentialNotation, FxSubexpression(), GreaterThanEqualOperator, IncrementAssignmentOperator, IsFxFunction(), LeftShiftAssignmentOperator, LeftShiftOperator, LessThanEqualOperator, LocaleNCompare(), LogicalAndOperator, LogicalOrOperator, MagickFalse, ModuloAssignmentOperator, MultiplyAssignmentOperator, NotEqualOperator, PlusAssignmentOperator, PowerAssignmentOperator, RightShiftAssignmentOperator, RightShiftOperator, and SubtractAssignmentOperator.
Referenced by FxEvaluateSubexpression().
MagickExport MagickBooleanType FxPreprocessExpression | ( | FxInfo * | fx_info, | |
double * | alpha, | |||
ExceptionInfo * | exception | |||
) |
References _FxInfo::file, FxEvaluateChannelExpression(), and GrayChannel.
Referenced by AcquireFxThreadSet().
static const char* FxSubexpression | ( | const char * | expression, | |
ExceptionInfo * | exception | |||
) | [inline, static] |
References GetMagickModule, OptionError, and ThrowMagickException().
Referenced by FxOperatorPrecedence().
static const double* GetFxSymbolValue | ( | FxInfo * | fx_info, | |
const char * | symbol | |||
) | [inline, static] |
References GetValueFromSplayTree(), and _FxInfo::symbols.
Referenced by FxChannelStatistics(), and FxGetSymbol().
static MagickBooleanType IsFxFunction | ( | const char * | expression, | |
const char * | name, | |||
const size_t | length | |||
) | [inline, static] |
References LocaleNCompare(), MagickFalse, and MagickTrue.
Referenced by FxEvaluateSubexpression(), FxGetSymbol(), and FxOperatorPrecedence().
static MagickBooleanType SetFxSymbolValue | ( | FxInfo *magick_restrict | fx_info, | |
const char *magick_restrict | symbol, | |||
const double | value | |||
) | [inline, static] |
References AcquireQuantumMemory(), AddValueToSplayTree(), ConstantString(), GetMagickModule, GetValueFromSplayTree(), MagickFalse, MagickTrue, ResourceLimitError, and ThrowMagickException().
Referenced by FxChannelStatistics(), FxEvaluateSubexpression(), and FxGetSymbol().