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.

Attachment: BlurringMorph.st
Description: Binary data

Reply via email to