Visual Basic (Declaration) | |
---|---|
Public Class RotateCommand Inherits RasterCommand Implements IRasterCommand |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As RotateCommand |
C# | |
---|---|
public class RotateCommand : RasterCommand, IRasterCommand |
C++/CLI | |
---|---|
public ref class RotateCommand : public RasterCommand, IRasterCommand |
This example will load an image, rotate it by 45 degrees and then save it back to disk
Visual Basic | Copy Code |
---|---|
Public Sub RotateCommandExample() Dim codecs As RasterCodecs = New RasterCodecs() Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "RotateCommand.bmp") ' Load the source image from disk Dim image As RasterImage = codecs.Load(srcFileName) ' Rotate the image by 45 degrees Dim command As RotateCommand = New RotateCommand() command.Angle = 45 * 100 command.FillColor = New RasterColor(255, 255, 255) command.Flags = RotateCommandFlags.Bicubic command.Run(image) ' Save it to disk codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24) ' Clean Up image.Dispose() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class |
C# | Copy Code |
---|---|
public void RotateCommandExample() { RasterCodecs codecs = new RasterCodecs(); string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "RotateCommand.bmp"); // Load the source image from disk RasterImage image = codecs.Load(srcFileName); // Rotate the image by 45 degrees RotateCommand command = new RotateCommand(); command.Angle = 45 * 100; command.FillColor = new RasterColor(255, 255, 255); command.Flags = RotateCommandFlags.Bicubic; command.Run(image); // Save it to disk codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24); // Clean Up image.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; } |
SilverlightCSharp | Copy Code |
---|---|
public void RotateCommandExample(RasterImage image, Stream destStream) { RasterCodecs codecs = new RasterCodecs(); // Rotate the image by 45 degrees RotateCommand command = new RotateCommand(); command.Angle = 45 * 100; command.FillColor = new RasterColor(255, 255, 255); command.Flags = RotateCommandFlags.Bicubic; command.Run(image); // Save it to disk codecs.Save(image, destStream, RasterImageFormat.Bmp, 24); // Clean Up image.Dispose(); } |
SilverlightVB | Copy Code |
---|---|
Public Sub RotateCommandExample(ByVal image As RasterImage, ByVal destStream As Stream) Dim codecs As RasterCodecs = New RasterCodecs() ' Rotate the image by 45 degrees Dim command As RotateCommand = New RotateCommand() command.Angle = 45 * 100 command.FillColor = New RasterColor(255, 255, 255) command.Flags = RotateCommandFlags.Bicubic command.Run(image) ' Save it to disk codecs.Save(image, destStream, RasterImageFormat.Bmp, 24) ' Clean Up image.Dispose() End Sub |
This command has the following features:
- It uses the center of the image as the center of rotation.
- It can rotate the image clockwise or counterclockwise up to 360 degrees in 100th-degree increments.
- It can resize the image to accommodate the rotated height and width, or it can retain the original height and width, cropping the image as necessary.
- It uses FillColor as the background color to fill any new area created by the rotation.
RotateCommandFlags.Resample and RotateCommandFlags.Bicubic can be combined with RotateCommandFlags.Resize, but they can not be combined with each other.
If RotateCommandFlags.Resize is set, then the image is resized. Otherwise, the image is cropped.
Interpolation can be done while rotating certain images. This produces superior output, eliminating the jaggedness occurring when rotating images at angles that are not multiples of 90. (ie when RotateCommand.Angle is not a multiple of 9000).
The only images that are interpolated are:
- 8-bit grayscale images (for best results, all gray values should be in the image palette). If the rotation doesn not give the expected results, you can use Leadtools.ImageProcessing.GrayscaleCommand with GrayscaleCommand.BitsPerPixel = 8 to change the image into a proper grayscale image.
- 12-bit and 16-bit grayscale images that do not have a palette. Grayscale image can have a palette if they have been loaded from certain DICOM images or if the Leadtools.ImageProcessing.Core.WindowLevelCommand has been used. Use Leadtools.ImageProcessing.GrayscaleCommand with GrayscaleCommand.BitsPerPixel = 12 or Leadtools.ImageProcessing.GrayscaleCommand with GrayscaleCommand.BitsPerPixel = 16 if Leadtools.ImageProcessing.RotateCommand does not seem to do any interpolation during the rotation.
- 16-bit color images
- 24-bit, 32-bit, 48-bit and 64-bit color images
For all other images, Leadtools.ImageProcessing.RotateCommand ignores the resampling flags and the rotate is performed without interpolation.
For more information, refer to Processing an Image.
System.Object
Leadtools.ImageProcessing.RasterCommand
Leadtools.ImageProcessing.RotateCommand
Target Platforms: Silverlight, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only), Windows Phone 7