Leadtools.ImageProcessing.SpecialEffects Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.12.11
PuzzleEffectCommand Class
See Also  Members   Example 
Leadtools.ImageProcessing.SpecialEffects Namespace : PuzzleEffectCommand Class




Splits the image into square blocks and randomizes these blocks inside the image. This command is available in the Raster Pro and above toolkits.

Syntax

Visual Basic (Declaration) 
Public Class PuzzleEffectCommand 
   Inherits RasterCommand
   Implements IRasterCommand 
Visual Basic (Usage)Copy Code
Dim instance As PuzzleEffectCommand
C# 
public class PuzzleEffectCommand : RasterCommand, IRasterCommand  
Managed Extensions for C++ 
public __gc class PuzzleEffectCommand : public RasterCommand, IRasterCommand  
C++/CLI 
public ref class PuzzleEffectCommand : public RasterCommand, IRasterCommand  

Example

Visual BasicCopy Code
ImageProcessing.SpecialEffects.PuzzleEffectCommand
   Public Sub PuzzleEffectCommandExample()
      RasterCodecs.Startup()
      Dim codecs As New RasterCodecs()
      codecs.ThrowExceptionsOnInvalidImages = True

      Dim leadImage As RasterImage = codecs.Load("C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Master.jpg")

      ' Prepare the command
      Dim command As PuzzleEffectCommand = New PuzzleEffectCommand
      command.XBlock = 10
      command.YBlock = 10
      command.Randomize = 0
      command.Flags = PuzzleEffectCommandFlags.Border Or PuzzleEffectCommandFlags.Shuffle Or PuzzleEffectCommandFlags.Count Or PuzzleEffectCommandFlags.Resize
      command.BorderColor = New RasterColor(0, 0, 0)

      ' Apply Puzzle Effect to this image.
      command.Run(leadImage)
      codecs.Save(leadImage, "C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Result.jpg", RasterImageFormat.Jpeg, 24)

      RasterCodecs.Shutdown()
   End Sub
C#Copy Code
ImageProcessing.SpecialEffects.PuzzleEffectCommand 
      public void PuzzleEffectCommandExample() 
      { 
         // Load an image 
         RasterCodecs.Startup(); 
         RasterCodecs codecs = new RasterCodecs(); 
         codecs.ThrowExceptionsOnInvalidImages = true; 
 
         RasterImage image = codecs.Load(@"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Master.jpg"); 
 
         // Prepare the command 
         PuzzleEffectCommand command  = new PuzzleEffectCommand(); 
         command.XBlock      = 10; 
         command.YBlock      = 10; 
         command.Randomize   = 0; 
         command.Flags       = PuzzleEffectCommandFlags.Border | 
            PuzzleEffectCommandFlags.Shuffle | 
            PuzzleEffectCommandFlags.Count   | 
            PuzzleEffectCommandFlags.Resize; 
         command.BorderColor = new RasterColor(0,0,0); 
 
         // Apply Puzzle Effect to this image. 
         command.Run(image); 
         codecs.Save(image, @"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Result.jpg", RasterImageFormat.Jpeg, 24); 
 
         RasterCodecs.Shutdown(); 
      }

Remarks

  • This command can process the whole image or a region of the image. If the image has a region, the effect is applied only to the region.
  • Splits the image into a certain number of blocks according to the flags. If the PuzzleEffectCommandFlags.Size flag is set, then the image will be divided into blocks using the XBlock and YBlock properties (or the xblock and yblock parameters if you are using the appropriate Constructor) for the dimensions of the blocks. If the PuzzleEffectCommandFlags.Count flag is set, then the image will be divided into blocks using the xblock and ybBlock values for the number of blocks per row and number of blocks per column.
  • If the PuzzleEffectCommandFlags.Resize flag is not set, the edge blocks might have a different size than the inner blocks. This means the edge blocks will be manipulated differently than the inner blocks. The inner blocks that have the same dimensions will be shuffled around. The right edge blocks will be shuffled together and the bottom edge blocks will be shuffled together.
  • If the PuzzleEffectCommandFlags.Resize flag is set, the image will be resized to be sure that all blocks have the same dimensions. In this case, the edge blocks will not be treated differently than the inner blocks.
  • If the PuzzleEffectCommandFlags.Border flag is set, borders will be drawn with the color set in the BorderColor property (or the borderColor parameter if you are using the appropriate Constructor). If the PuzzleEffectCommandFlags.Border flag is not set, no borders will be drawn.
  • If the PuzzleEffectCommandFlags.Shuffle flag is not set, the blocks will appear in their original positions. If the PuzzleEffectCommandFlags.Shuffle flag is set then the blocks will appear randomized. The randomization process will be controlled by the Randomize property, or the randomize parameter if you are using the appropriate Constructor, as follows:
  • If the randomize value is 0, the command will select the starting point for the randomize process. You will get a different result every time you call the command with the randomize value = 0.
  • If the randomize value is greater than 0, the command will use this value as a starting point for the randomize process. You will get the same result every time you call the command with the same randomize value > 0.
  • Edge blocks that have the same size as inner blocks might move into the middle of the resulting image. Edge blocks with a different size than inner blocks will remain on the edge.
  • You must set the PuzzleEffectCommandFlags.Size flag or the Count flag (but not both) for the command to affect the image. If you set the flags to 0, the command leaves the image unchanged.
  • This command supports all bits/pixel supported by LEADTOOLS.
  • This command supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.
  • This command does not support signed data images.
  • This command does not support 32-bit grayscale images.
For more information, refer to Applying Artistic Effects.

Inheritance Hierarchy

System.Object
   Leadtools.ImageProcessing.RasterCommand
      Leadtools.ImageProcessing.SpecialEffects.PuzzleEffectCommand

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also