Overview

SharpenEffectLib increases edge contrast to make images and controls appear sharper and more defined, wrapping the FireMonkey TSharpenEffect component. This is the opposite of blur effects — it enhances detail and crispness.

PropertyDetails
LibrarySharpenEffectLib
Prefixsharpen_
WrapsTSharpenEffect
Functions12
TypeVisual effect (enhancement)
CategoryCountDescription
Creation / Destruction2Create and free effect
Sharpen Amount2Get/set intensity
Effect Control4Enabled and trigger get/set
Error Handling4Error codes and messages
🔍 Edge Enhancement: Sharpening increases local contrast along edges, making details pop. Use moderate values (0.5–1.0) for natural enhancement, and higher values for dramatic or artistic effects. Works best on images and detailed graphics.

Cross-Platform Support

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

Creation & Destruction

sharpen#(parent#)

Creates a new sharpen effect attached to the specified visual control.

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

sharpen_free(effect#)

Destroys the effect and releases associated resources.

Error Handling

FunctionSignatureDescription
sharpen_error()sharpen_error@Returns last error code (0 = none)
sharpen_errormsg$()sharpen_errormsg$@Returns last error message
sharpen_strerror$(code)sharpen_strerror$@nConverts error code to text
sharpen_clearerror()sharpen_clearerror@Clears the error state

Sharpen Amount

FunctionSignatureDescription
sharpen_amount#(effect#, value)sharpen_amount#@#nSet intensity (0–2)
sharpen_amount(effect#)sharpen_amount@#Get amount
ValueEffect
0.0No sharpening (original)
0.3–0.5Subtle enhancement
0.5–1.0Moderate sharpening (recommended)
1.0–1.5Strong sharpening
1.5–2.0Very aggressive (can create harsh edges)

Effect Control

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

Complete Examples

Example 1: Sharpen Presets

╯ sharpen-presets.bas
let frm# = Pointer#(0)
let rect# = Pointer#(0)
let shp# = Pointer#(0)
let lbl# = Pointer#(0)

frm# = form#("Sharpen Control", 450, 320)

rect# = rectangle#(frm#)
rectangle_bounds#(rect#, 125, 40, 200, 100)
rectangle_fill#(rect#, "DodgerBlue")

shp# = sharpen#(rect#)
sharpen_amount#(shp#, 0)

lbl# = label#(frm#, "Amount: 0 (Normal)", 145, 160)

let btn1# = button#(frm#, "Normal")
button_bounds#(btn1#, 50, 200, 80, 30)
button_onclick#(btn1#, "SetNormal")

let btn2# = button#(frm#, "Light")
button_bounds#(btn2#, 140, 200, 80, 30)
button_onclick#(btn2#, "SetLight")

let btn3# = button#(frm#, "Medium")
button_bounds#(btn3#, 230, 200, 80, 30)
button_onclick#(btn3#, "SetMedium")

let btn4# = button#(frm#, "Strong")
button_bounds#(btn4#, 320, 200, 80, 30)
button_onclick#(btn4#, "SetStrong")

form_show(frm#)

function SetNormal(sender#)
  sharpen_amount#(shp#, 0)
  label_text#(lbl#, "Amount: 0 (Normal)")
endfunction

function SetLight(sender#)
  sharpen_amount#(shp#, 0.5)
  label_text#(lbl#, "Amount: 0.5 (Light)")
endfunction

function SetMedium(sender#)
  sharpen_amount#(shp#, 1.0)
  label_text#(lbl#, "Amount: 1.0 (Medium)")
endfunction

function SetStrong(sender#)
  sharpen_amount#(shp#, 2.0)
  label_text#(lbl#, "Amount: 2.0 (Strong)")
endfunction

Example 2: Toggle Sharpen

╯ toggle-sharpen.bas
let frm# = Pointer#(0)
let rect# = Pointer#(0)
let shp# = Pointer#(0)

frm# = form#("Toggle Sharpen", 400, 280)

rect# = rectangle#(frm#)
rectangle_bounds#(rect#, 100, 50, 200, 120)
rectangle_fill#(rect#, "Coral")

shp# = sharpen#(rect#)
sharpen_amount#(shp#, 1.5)

let btn# = button#(frm#, "Toggle Sharpen")
button_bounds#(btn#, 120, 200, 140, 35)
button_onclick#(btn#, "OnToggle")

form_show(frm#)

function OnToggle(sender#)
  if sharpen_enabled(shp#) = 1 then
    sharpen_enabled#(shp#, 0)
  else
    sharpen_enabled#(shp#, 1)
  endif
endfunction

Quick Reference

FunctionSignatureDescription
CREATION & DESTRUCTION
sharpen#(parent#)sharpen#@#Create effect
sharpen_free(effect#)sharpen_free@#Destroy effect
SHARPEN AMOUNT
sharpen_amount#(effect#, value)sharpen_amount#@#nSet intensity (0–2)
sharpen_amount(effect#)sharpen_amount@#Get amount
EFFECT CONTROL
sharpen_enabled#(effect#, value)sharpen_enabled#@#nEnable/disable
sharpen_enabled(effect#)sharpen_enabled@#Get enabled state
sharpen_trigger#(effect#, trigger$)sharpen_trigger#@#$Set trigger
sharpen_trigger$(effect#)sharpen_trigger$@#Get trigger
ERROR HANDLING
sharpen_error()sharpen_error@Last error code
sharpen_errormsg$()sharpen_errormsg$@Last error message
sharpen_strerror$(code)sharpen_strerror$@nCode to text
sharpen_clearerror()sharpen_clearerror@Clear error state

See Also

LibraryDescription
BlurEffectLibOpposite effect — softening/blur
EmbossEffectLibEdge enhancement with 3D look
ContrastEffectLibGlobal contrast adjustment