It looks a bit like the emboss filter, doesn't it?
yes, of course the difference is in the colours that handle the direction of the depth in x y and z. unlike bump maps that only handles with a grayscale the depth. (or at least I understand that)..
the real way to create a normal map is 'baking' a high poly mesh and then using the generated normal map within the texture
but reading more seems that blender only can create normals from a bump map (in addition to baking a high poly).. but that is not cool, is better to generate it from a texture..?
you know, I think the best thing is to use the high poly, load the texture, using a displacement map.. and then by-hand sculpting the depth, but games doesn't think the same, high poly takes much more memory and cpu usage..
instead of using a lot of polygons for creating a floor texture, you can use only 4 to create the mesh, and apply the normal map
there is a plugin for gimp, but i've not tested it.
btw if this is not usefull for bgrabitmap in general use your time for another usefull thing