Is this about the MC2 project? Collision masks are the way to go, so for every frame of the animation of a worm you would have a black and white mask, with white meaning "this is a pixel that's part of the worm" and black "this is invisible, doesn't collide".
You'll have the same collision mask for the map, that can be generated at runtime, once with the terrain.
Now say you have a grenade launched, that should also have a collision mask. When the grenade hits the terrain, render the explosion. The explosion should have something like a big circle attached, sort of like the collision mask.
So, when the explosion is rendered you just have to tell the program to replace every pixel on the terrain with an alpha pixel if that explosion circle overlaps it.
Like that you'll have a hole on the terrain once the grenade exploded. For a nicer effect, you could double the terrain layer, meaning that you'll have two identical terrains overlapping each-other. When the grenade explodes, replace the pixels on the ON TOP terrain layer with alpha pixels, and do the same with the layer behind as well, but make sure it's a circle with a smaller radius. Like that you'll give a sense of depth to the hole made on the terrain.
Use trigonometry functions if you want to make the grenade to bounce from the ground up at an angle, but that's another story. For your example all you have to do is change the grenade in mid air animation (maybe just a spinning grenade) with an exploding animation when it detects collision (make sure you stop moving the grenade when it hits the ground).
Oh, and do not use a big bitmap, not a good idea really (imagine a 3000*1000 sized map...). Maybe try tiles if you really want images, but you can also generate a random sloping terrain on run-time