im wanting to do specular and diffuse seprate though manly for learning.
its manly the part where you calculate angle between eye and normal vector that i get lost.
Let's say your bitmap is on a plane in 3d space, eg. from (-320,-240,0) - (320,240,0).
The camera is in the center, somewhere above, eg. at (0,0,50).
And there's a position of the light-source somewhere between the plane and the camera.
For each pixel you've got a normal vector (stored in the normal map), a view direction (vector from the camera to the pixel) and a light direction (vector from the light source to the pixel).
You've already figured out the diffuse lighting which is
diffuse= dot3(lightdir, normal)
For the specular term you
reflect the view direction at the normal:
reflectdir= viewDir - normal * 2 * dot3(normal, viewDir);
(viewDir and normal must be normalized, so it might be cheaper to use blinn's half angle apprroximation instead)
Check if it's facing the light source and use some glossiness function:
specular= dot3(reflectdir, lightdir)
if (specular > 0.0) specular= pow(specular, 40.0)
The final color is something like
textureColor * diffuse * lightColor + specular * specularColor