rotating greyscale bitmap image

Hello,

Does anyone have an idea how to tilt/rotate a 256 gray scale bitmap
? degrees around a given coordinate (x,y)?
My current approach is to scan the bitmap diagonally pixel by pixel
along the diagonal defined by the angle ? and rebuilt it horizontally
line by line. Obviously the gray scale values need to be interpolated
from the four pixels nearest to each fractional coordinate scanned
along the diagonal.
I am confident my approach will work (but probably very slowly!!!)
I don't really want to re-invent the wheel!!! I'd be grateful for any
source code that will work with Borland C++ Builder (V.4)
Thanks in advance!

Johannes