of images, where
every n'th pixel is sampled and copied to the result image,
this template provides much more accurate image
(weighing the pixels).
is instantiated with a specific pixel format and must
be inherited to support pixel access functions for a
specific bitmap implementation. This provides
abstaction of the rotation mechanism from the actual
professional quality image rotation.
is optimized for image quality, not speed.
image retains size and aspect ratio of
source image (destination image size is usally
double precision rotation angles (0..360).
generic bitmap structures. Specific bitmap
structure is defined by inheritance.
based - no need for libraries, DLLs etc. No
use the rotation
derive you own class from the rotation
class CRotateByShearRGB : public CRotateByShear<COLORREF>
define a concrete class where each pixel is of
you must override 5 abstract functions which support
creation, destruction of bitmap buffers and pixel
level access to the bitmap buffers.
instantiate your derived class and call the
function which allocates a new destination bitmap
buffer and rotates the input image into it.
further instructions please view the attached sample
command-line project (Rotate.cpp). It is a simple
command line utility which reads PPM (ASCII or binary)
image file into a DIB structure, rotates
it and saves it to another PPM image