I saw this GLMGaussianBlurBrickRenderer class #example nice! And once I did something similiar, a Morph that blurres the underlaying display.
But instead of doing a convolution (convolve image with kernel) by hand,
I convolve the kernel with the image by using copyBits from the BitBlt:
| form temp dest from to |
form := Display contentsOfArea: self bounds.
temp := Form extent: self extent depth: 32.
temp getCanvas fillColor: Color white darker.
dest := Form extent: self extent depth: 32.
dest getCanvas fillColor: Color white darker.
to := kernel size // 2.
from := -1 * to.
(from to: to) do: [ :i | temp copyBits: form at: i @ 0 translucent:
(kernel at: i + to + 1) ].
(from to: to) do: [ :i | dest copyBits: temp at: 0 @ i translucent:
(kernel at: i + to + 1) ].
aCanvas drawImage: dest at: self bounds topLeft.
BlurringMorph.st
Description: Binary data
