Is There a Way to Perform a 2D Image Rotation by Matrix Multiplication?
Let's say you have an $ M \times N $ image.
If you turn it into a vector in $ {R}^{\left( M N \right)} $ and create a matrix which is $ \left(M  N \right) \times \left( M  N \right) $ by multiplication and rearranging the vector from the multiplication result you can reposition any pixels where ever you want.  

Being practical, by padding the original image you can create rotation by any angle you want even with interpolation (By summing few pixels into one position).

It all starting with vectorization of the image.