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.
| Property | Details |
|---|---|
| Library | SharpenEffectLib |
| Prefix | sharpen_ |
| Wraps | TSharpenEffect |
| Functions | 12 |
| Type | Visual effect (enhancement) |
| Category | Count | Description |
|---|---|---|
| Creation / Destruction | 2 | Create and free effect |
| Sharpen Amount | 2 | Get/set intensity |
| Effect Control | 4 | Enabled and trigger get/set |
| Error Handling | 4 | Error 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
| Platform | Support |
|---|---|
| Windows | ✅ Full support |
| Linux | ✅ Full support |
| Android | ✅ Full support |
Creation & Destruction
sharpen#(parent#)
Creates a new sharpen effect attached to the specified visual control.
| Parameter | Type | Description |
|---|---|---|
parent# | Pointer | Target visual control |
| Returns | Pointer | Effect handle, or 0 on failure |
sharpen_free(effect#)
Destroys the effect and releases associated resources.
Error Handling
| Function | Signature | Description |
|---|---|---|
sharpen_error() | sharpen_error@ | Returns last error code (0 = none) |
sharpen_errormsg$() | sharpen_errormsg$@ | Returns last error message |
sharpen_strerror$(code) | sharpen_strerror$@n | Converts error code to text |
sharpen_clearerror() | sharpen_clearerror@ | Clears the error state |
Sharpen Amount
| Function | Signature | Description |
|---|---|---|
sharpen_amount#(effect#, value) | sharpen_amount#@#n | Set intensity (0–2) |
sharpen_amount(effect#) | sharpen_amount@# | Get amount |
| Value | Effect |
|---|---|
0.0 | No sharpening (original) |
0.3–0.5 | Subtle enhancement |
0.5–1.0 | Moderate sharpening (recommended) |
1.0–1.5 | Strong sharpening |
1.5–2.0 | Very aggressive (can create harsh edges) |
Effect Control
| Function | Signature | Description |
|---|---|---|
sharpen_enabled#(effect#, value) | sharpen_enabled#@#n | Enable (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
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
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
| Function | Signature | Description |
|---|---|---|
| CREATION & DESTRUCTION | ||
sharpen#(parent#) | sharpen#@# | Create effect |
sharpen_free(effect#) | sharpen_free@# | Destroy effect |
| SHARPEN AMOUNT | ||
sharpen_amount#(effect#, value) | sharpen_amount#@#n | Set intensity (0–2) |
sharpen_amount(effect#) | sharpen_amount@# | Get amount |
| EFFECT CONTROL | ||
sharpen_enabled#(effect#, value) | sharpen_enabled#@#n | Enable/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$@n | Code to text |
sharpen_clearerror() | sharpen_clearerror@ | Clear error state |
See Also
| Library | Description |
|---|---|
BlurEffectLib | Opposite effect — softening/blur |
EmbossEffectLib | Edge enhancement with 3D look |
ContrastEffectLib | Global contrast adjustment |
