Overview

RadialBlurEffectLib applies a radial (zoom) blur emanating from a center point, wrapping the FireMonkey TRadialBlurEffect component. The effect creates a motion blur as if zooming in or out from the center — commonly used for speed, focus, or dramatic emphasis effects.

PropertyDetails
LibraryRadialBlurEffectLib
Prefixradblur_
WrapsTRadialBlurEffect
Functions16
TypeVisual effect (blur)
CategoryCountDescription
Creation / Destruction2Create and free effect
Blur Amount2Get/set blur intensity
Center Position4Get/set X,Y center (0–1)
Effect Control4Enabled and trigger get/set
Error Handling4Error codes and messages
💨 Zoom Blur: Unlike Gaussian or Box blur which spread evenly, radial blur streaks outward from a center point — like zooming a camera during a long exposure. Great for action or speed effects.

Cross-Platform Support

PlatformSupport
Windows✅ Full support
Linux✅ Full support
Android✅ Full support

Creation & Destruction

radblur#(parent#)

Creates a new radial blur effect attached to the specified visual control.

ParameterTypeDescription
parent#PointerTarget visual control
ReturnsPointerEffect handle, or 0 on failure

radblur_free(effect#)

Destroys the effect and releases associated resources.

Error Handling

FunctionSignatureDescription
radblur_error()radblur_error@Returns last error code (0 = none)
radblur_errormsg$()radblur_errormsg$@Returns last error message
radblur_strerror$(code)radblur_strerror$@nConverts error code to text
radblur_clearerror()radblur_clearerror@Clears the error state

Blur Amount

Controls the intensity of the radial blur. Higher values produce stronger zoom-blur streaks.

FunctionSignatureDescription
radblur_bluramount#(effect#, value)radblur_bluramount#@#nSet blur intensity (0–10)
radblur_bluramount(effect#)radblur_bluramount@#Get blur amount
ValueEffectUse Case
0–0.5Very subtleSoft focus background
1–3Gentle zoom blurSubtle speed/depth feel
4–7Medium intensityAction or motion emphasis
8–10Strong zoom streaksDramatic speed effect

Center Position

Normalized coordinates (0–1) specifying where the blur radiates from.

FunctionSignatureDescription
radblur_centerx#(effect#, value)radblur_centerx#@#nSet X center (0=left, 1=right)
radblur_centerx(effect#)radblur_centerx@#Get X center
radblur_centery#(effect#, value)radblur_centery#@#nSet Y center (0=top, 1=bottom)
radblur_centery(effect#)radblur_centery@#Get Y center

Effect Control

FunctionSignatureDescription
radblur_enabled#(effect#, value)radblur_enabled#@#nEnable (1) or disable (0)
radblur_enabled(effect#)radblur_enabled@#Gets enabled state
radblur_trigger#(effect#, trigger$)radblur_trigger#@#$Sets trigger string
radblur_trigger$(effect#)radblur_trigger$@#Gets trigger string

Complete Examples

Example 1: Basic Radial Blur

╯ radial-blur.bas
let frm# = Pointer#(0)
let img# = Pointer#(0)
let blur# = Pointer#(0)

frm# = form#("Radial Blur Demo", 400, 350)

img# = image#(frm#)
image_bounds#(img#, 100, 30, 200, 150)
image_load#(img#, "https://picsum.photos/200/150")

' Apply radial (zoom) blur
blur# = radblur#(img#)
radblur_bluramount#(blur#, 2)

form_show(frm#)

Example 2: Adjustable Blur Intensity

╯ radblur-slider.bas
let frm# = Pointer#(0)
let img# = Pointer#(0)
let blur# = Pointer#(0)
let trkBlur# = Pointer#(0)
let lblBlur# = Pointer#(0)

frm# = form#("Radial Blur Control", 450, 400)

img# = image#(frm#)
image_bounds#(img#, 125, 30, 200, 150)
image_load#(img#, "https://picsum.photos/200/150")

blur# = radblur#(img#)
radblur_bluramount#(blur#, 0)

lblBlur# = label#(frm#, "Blur: 0.0", 180, 200)
trkBlur# = trackbar#(frm#)
trackbar_bounds#(trkBlur#, 50, 230, 350, 30)
trackbar_max#(trkBlur#, 100)
trackbar_value#(trkBlur#, 0)
trackbar_onchange#(trkBlur#, "OnBlurChange")

form_show(frm#)

function OnBlurChange(sender#) local b
  let b = trackbar_value(trkBlur#) / 10
  radblur_bluramount#(blur#, b)
  label_text#(lblBlur#, "Blur: " + stri$(b, 1))
endfunction

Example 3: Move Blur Center

╯ radblur-center.bas
let frm# = Pointer#(0)
let img# = Pointer#(0)
let blur# = Pointer#(0)
let trkX# = Pointer#(0)
let trkY# = Pointer#(0)
let lblX# = Pointer#(0)
let lblY# = Pointer#(0)

frm# = form#("Radial Blur Center", 500, 470)

img# = image#(frm#)
image_bounds#(img#, 150, 20, 200, 150)
image_load#(img#, "https://picsum.photos/200/150")

blur# = radblur#(img#)
radblur_bluramount#(blur#, 3)

lblX# = label#(frm#, "Center X: 0.50", 30, 190)
trkX# = trackbar#(frm#)
trackbar_bounds#(trkX#, 30, 215, 440, 25)
trackbar_max#(trkX#, 100)
trackbar_value#(trkX#, 50)
trackbar_onchange#(trkX#, "OnCenterX")

lblY# = label#(frm#, "Center Y: 0.50", 30, 260)
trkY# = trackbar#(frm#)
trackbar_bounds#(trkY#, 30, 285, 440, 25)
trackbar_max#(trkY#, 100)
trackbar_value#(trkY#, 50)
trackbar_onchange#(trkY#, "OnCenterY")

form_show(frm#)

function OnCenterX(sender#) local x
  let x = trackbar_value(trkX#) / 100
  radblur_centerx#(blur#, x)
  label_text#(lblX#, "Center X: " + stri$(x, 2))
endfunction

function OnCenterY(sender#) local y
  let y = trackbar_value(trkY#) / 100
  radblur_centery#(blur#, y)
  label_text#(lblY#, "Center Y: " + stri$(y, 2))
endfunction

Best Practices

PracticeWhy
Use values 1–3 for subtle effectsHigher values are very dramatic
Center on the subject of interestDraws focus to the center point
Map slider 0–100 ÷ 10 for range 0–10Provides smooth control via trackbar
Combine with other blur types for varietyDirectional for motion, Gaussian for softness, Radial for zoom

Quick Reference

FunctionSignatureDescription
CREATION & DESTRUCTION
radblur#(parent#)radblur#@#Create effect
radblur_free(effect#)radblur_free@#Destroy effect
BLUR AMOUNT
radblur_bluramount#(effect#, value)radblur_bluramount#@#nSet blur (0–10)
radblur_bluramount(effect#)radblur_bluramount@#Get blur
CENTER POSITION
radblur_centerx#(effect#, value)radblur_centerx#@#nSet X center (0–1)
radblur_centerx(effect#)radblur_centerx@#Get X center
radblur_centery#(effect#, value)radblur_centery#@#nSet Y center (0–1)
radblur_centery(effect#)radblur_centery@#Get Y center
EFFECT CONTROL
radblur_enabled#(effect#, value)radblur_enabled#@#nEnable/disable
radblur_enabled(effect#)radblur_enabled@#Get enabled state
radblur_trigger#(effect#, trigger$)radblur_trigger#@#$Set trigger
radblur_trigger$(effect#)radblur_trigger$@#Get trigger
ERROR HANDLING
radblur_error()radblur_error@Last error code
radblur_errormsg$()radblur_errormsg$@Last error message
radblur_strerror$(code)radblur_strerror$@nCode to text
radblur_clearerror()radblur_clearerror@Clear error state

See Also

LibraryDescription
DirectionalBlurEffectLibLinear motion blur
GaussianBlurEffectLibSmooth general blur
BoxBlurEffectLibFast box blur
BlurEffectLibStandard blur effect