Ready code?... Nope. But the code is very simple.

Code:
procedure outline( destinationpixels, sourcepixels, transparent, outlinecolour)

For x = 0 to sourcewidth

For y = 0 to sourceheight

  if sourcepixels( x,y ) = transparent and 
    &#40; sourcepixels&#40; x-1, y &#41; <> transparent or 
    sourcepixels&#40; x+1, y &#41; <> transparent or
    sourcepixels&#40; x, y-1 &#41; <> transparent or
    sourcepixels&#40; x, y+1 &#41; <> transparent &#41; then
    destinationpixels&#40; x,y &#41; = outlinecolour
  end if

next y

next x

end procedure
Code:
procedure makeglow&#40; destinationpixels, sourcepixels, transparentcolour, outlinecolour , outlinedarknessfactor, outlinesteps &#41;

outline&#40; destinationpixels, sourcepixels, transparent,outlinecolour &#41;


for i = 1 to outlinesteps

   tempsource = copydestinationtotempdestination&#40; destinationpixels &#41;

   outlinecolour = outlinecolour - outlinedarknessfactor

   outline&#40; destinationpixels, tempsource, transparent, outlinecolour &#41;

next i

end procedure

sorry, I can't write it in pascal at the moment, I don't have access to a pascal IDE.. so I've done it in Pseudocode.