This question isn't language specific, and is a math problem. I will however use some C++ code to explain what I need as I'm not too hot on math.

Here's how the image is composed:

ImageMatrix image; image[0][0][0] = 1; image[0][1][0] = 2; image[0][2][0] = 1; image[1][0][0] = 0; image[1][1][0] = 0; image[1][2][0] = 0; image[2][0][0] = -1; image[2][1][0] = -2; image[2][2][0] = -1;

Here's the prototype for the function I'm trying to create:

ImageMatrix rotateImage(ImageMatrix image, double angle);

I'd like to rotate only the first two indices (rows and columns) but not the channel.