What I would call a "real" desintegration would be :
- keep effect working on one pixel square blocks
- Each column of pixel upper new black pixel is going "down" due to gravity.
With this you could have a nicer effect (At least I think

But implementing this one would mean increase speed to "shift" the column of pixels (for loop with get pixel and set pixel should not be enough!). But now you have a real problem of speed improvment.

Bye
jcredk