|Rotate Pixels||Lab Report|
|How to Rotate a Bitmap Multiples of 90 degrees with the Pixels Property|
|The Glyph at the right above was rotated 90 degrees counterclockwise.|
The purpose of this program, RotatePixels.EXE, is to show how to rotate a bitmap multiples of 90 degrees with the Pixels Property.
Materials and Equipment
Delphi 3 (to recompile)
Rotations that are multiples of 90 degrees can be formed simply by manipulating subscripts with the Pixels property.
See the following table:
|Rotation[degrees counterclockwise]||Subscript Manipulation using Pixels|
|0||Out[i, j] = In[i, j]|
|90||Out[j, Right-i-1] = In[i, j]|
|180||Out[Right-i-1, Bottom-j-1] = In[i, j]|
|270||Out[Bottom-j-1,i] = In[i, j]|
The Pixels property can be used in Delphi 1-3 to manipulate pixel data, but because of considerable Windows overhead, any use of Pixels will result in fairly slow code for bitmaps of any size.
A bitmap can be rotated much more quickly using the Delphi 3 Scanline property. See the RotateScanline and FlipReverseRotate examples. The FlipReverseRotate example uses the same general ideas as this example.
Bitmap Rotation, Pixels property
Delphi 3 Source and EXE (121 KB): RotatePixels.ZIP
Compiles without any changes in D4. D3 EXE is 226 KB, while D4 EXE is 308 KB.
Updated 18 Feb 2002
since 1 Nov 1998