Parasol Framework
  • Gallery
  • API
  • Wiki
  • GitHub
    • Audio
    • Core
    • Display
    • Fluid
    • Font
    • Network
    • Vector
    • Audio
    • Sound
    • File
    • MetaClass
    • Module
    • StorageDevice
    • Task
    • Thread
    • Time
    • Compression
    • Config
    • Script
    • XML
    • Controller
    • BlurFX
    • ColourFX
    • CompositeFX
    • ConvolveFX
    • DisplacementFX
    • FilterEffect
    • FloodFX
    • ImageFX
    • LightingFX
    • MergeFX
    • MorphologyFX
    • OffsetFX
    • RemapFX
    • SourceFX
    • TurbulenceFX
    • WaveFunctionFX
    • Scintilla
    • ScintillaSearch
    • Bitmap
    • Clipboard
    • Display
    • Document
    • Font
    • Picture
    • Pointer
    • Surface
    • SVG
    • ClientSocket
    • HTTP
    • NetSocket
    • Proxy
    • Vector
    • VectorClip
    • VectorColour
    • VectorEllipse
    • VectorFilter
    • VectorGradient
    • VectorGroup
    • VectorImage
    • VectorPath
    • VectorPattern
    • VectorPolygon
    • VectorRectangle
    • VectorScene
    • VectorShape
    • VectorSpiral
    • VectorText
    • VectorTransition
    • VectorViewport
    • VectorWave

ImageFX Class

Renders a bitmap image in the effect pipeline.

The ImageFX class will render a source image into a given rectangle within the current user coordinate system. The client has the option of providing a pre-allocated Bitmap or the path to a Picture file as the source.

If a pre-allocated Bitmap is to be used, it must be created under the ownership of the ImageFX object, and this must be configured prior to initialisation. It is required that the bitmap uses 32 bits per pixel and that the alpha channel is enabled.

If a source picture file is referenced, it will be upscaled to meet the requirements automatically as needed.

Technically the ImageFX object is represented by a new viewport, the bounds of which are defined by attributes X, Y, Width and Height. The placement and scaling of the referenced image is controlled by the AspectRatio field.

Structure

The ImageFX class consists of the following fields:

Access
NameTypeComment
  AspectRatioINTSVG compliant aspect ratio settings.
NameDescription
ARF::MEETAspect ratio is preserved. The entire viewbox will be visible in the viewport. The viewbox is scaled up as much as possible.
ARF::NONEScale the viewbox to match the size of the viewport. Aspect ratio is not preserved.
ARF::SLICEAspect ratio is preserved. The viewbox can extend beyond the viewport's edges on one axis. The viewbox is scaled up as much as possible.
ARF::X_MAXAlign to the right.
ARF::X_MIDAlign to the horizontal center.
ARF::X_MINAlign to the left.
ARF::Y_MAXAlign to the bottom.
ARF::Y_MIDAlign to the vertical center.
ARF::Y_MINAlign to the top.
  BitmapOBJECTPTRThe Bitmap being used as the image source.

Reading the Bitmap field will return the Bitmap that is being used as the image source. Note that if a custom Bitmap is to be used, the correct way to do this as to assign it to the ImageFX object via ownership rules.

If a picture image has been processed by setting the Path, the Bitmap will refer to the content that has been processed.

  PathSTRINGPath to an image file supported by the Picture class.
  ResampleMethodINTThe resample algorithm to use for transforming the source image.
NameDescription
VSM::AUTOThe default option is chosen by the system. This will typically be BILINEAR, but slow machines may switch to nearest neighbour and high speed machines could use more advanced methods.
VSM::BESSEL
VSM::BICUBICProduces a similar result to BILINEAR at a slightly higher CPU cost and a marginally sharper after-effect.
VSM::BILINEARBilinear is a common algorithm that produces a reasonable quality image quickly.
VSM::BLACKMANFive times slower than BILINEAR, the final result will be less sharp than SINC.
VSM::GAUSSIAN
VSM::KAISER
VSM::LANCZOSThis well known algorithm may serve as a point of comparison for evaluating the results of other methods. It shares characteristics with SINC and BLACKMAN.
VSM::MITCHELL
VSM::NEIGHBOURNearest neighbour is the fastest sampler at the cost of poor quality.
VSM::QUADRIC
VSM::SINCFive times slower than BILINEAR, the final result is of very good quality.
VSM::SPLINE16About twice as slow as BILINEAR, this method produces a considerably better result, and is a good choice for enlarging images without producing artifacts when contrasting colours are present.
  XMLDefSTRINGReturns an SVG compliant XML string that describes the filter.

Actions

The following actions are currently supported:

DrawRender the effect to the target bitmap.
ERR acDraw(*Object, DOUBLE X, DOUBLE Y, DOUBLE Width, DOUBLE Height)
ParameterDescription
XThe X position of the region to be drawn.
YThe Y position of the region to be drawn.
WidthThe width of the region to be drawn.
HeightThe height of the region to be drawn.
ImageFX class documentation © Paul Manias © 2010-2025

ARF Type

Aspect ratios control alignment, scaling and clipping.

NameDescription
ARF::MEETAspect ratio is preserved. The entire viewbox will be visible in the viewport. The viewbox is scaled up as much as possible.
ARF::NONEScale the viewbox to match the size of the viewport. Aspect ratio is not preserved.
ARF::SLICEAspect ratio is preserved. The viewbox can extend beyond the viewport's edges on one axis. The viewbox is scaled up as much as possible.
ARF::X_MAXAlign to the right.
ARF::X_MIDAlign to the horizontal center.
ARF::X_MINAlign to the left.
ARF::Y_MAXAlign to the bottom.
ARF::Y_MIDAlign to the vertical center.
ARF::Y_MINAlign to the top.
ImageFX module documentation © Paul Manias © 2010-2025

VSM Type

NameDescription
VSM::AUTOThe default option is chosen by the system. This will typically be BILINEAR, but slow machines may switch to nearest neighbour and high speed machines could use more advanced methods.
VSM::BESSEL
VSM::BICUBICProduces a similar result to BILINEAR at a slightly higher CPU cost and a marginally sharper after-effect.
VSM::BILINEARBilinear is a common algorithm that produces a reasonable quality image quickly.
VSM::BLACKMANFive times slower than BILINEAR, the final result will be less sharp than SINC.
VSM::GAUSSIAN
VSM::KAISER
VSM::LANCZOSThis well known algorithm may serve as a point of comparison for evaluating the results of other methods. It shares characteristics with SINC and BLACKMAN.
VSM::MITCHELL
VSM::NEIGHBOURNearest neighbour is the fastest sampler at the cost of poor quality.
VSM::QUADRIC
VSM::SINCFive times slower than BILINEAR, the final result is of very good quality.
VSM::SPLINE16About twice as slow as BILINEAR, this method produces a considerably better result, and is a good choice for enlarging images without producing artifacts when contrasting colours are present.
ImageFX module documentation © Paul Manias © 2010-2025