Image & Canvas
canvasGrayscale
$canvasGrayscale
The $canvasGrayscale function converts the current canvas to grayscale, removing all color information (saturation) while preserving the brightness.
Syntax
$canvasGrayscale
Parameters
None. The engine accepts one optional argument and ignores it.
Return value
An empty string. The effect is recorded for the current canvas (the last one made with $canvasCreate) and applied, in order, when the canvas is rendered.
Behavior
- Each pixel of the canvas is converted to a shade of gray from a weighted sum of its channels: in tests
#FF0000gives gray 76,#00FF00gives 149,#0000FFgives 29 and white stays white (about 30% red, 59% green, 11% blue). - It applies to the whole canvas at the point where it is written: only the operations written before it are affected.
- It cannot be undone.
Examples
Simple conversion to black and white
$canvasCreate[photo;400;400]
$canvasLoadImage[https://example.com/photo.png;0;0;400;400]
$canvasGrayscale
$attachImage[photo]
$sendMessage[🎨 Image converted to grayscale!]
Grayscale then invert
$canvasCreate[photo;400;400]
$canvasLoadImage[https://example.com/photo.png;0;0;400;400]
$canvasGrayscale
$canvasInvert
$attachImage[photo]
$sendMessage[🕰️ Negative effect applied!]
Before/After comparison
$canvasCreate[before;400;400]
$canvasLoadImage[https://example.com/photo.png;0;0;400;400]
$canvasCreate[after;400;400]
$canvasLoadImage[https://example.com/photo.png;0;0;400;400]
$canvasGrayscale
$attachImage[before]
$attachImage[after]
$sendMessage[⚫ Original vs Grayscale:]
Notes
- A canvas must have been created with
$canvasCreate[]first; otherwise the call has no effect. $canvasLoadImage[url;0;0;width;height]draws the image over the canvas, so the grayscale then covers it.- To invert the colors, use
$canvasInvertinstead. - For rotation, use
$canvasRotate[degrees].
Try it
Paste an example into the playground to preview its message (functions that act on Discord are not run), or build the same thing with blocks.