←Select platform

PuzzleEffectCommand Class

Summary
Splits the image into square blocks and randomizes these blocks inside the image. This command is available in the Imaging Pro and above toolkits.
Syntax
C#
C++/CLI
Python
public class PuzzleEffectCommand : RasterCommand 
public ref class PuzzleEffectCommand : public RasterCommand   
class PuzzleEffectCommand(RasterCommand): 
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-bit and 16-bit grayscale and 48-bit and 64-bit color images. Support for 12-bit and 16-bit grayscale and 48-bit 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.

Puzzle Effect Function - Before

Puzzle Effect Function - Before

Puzzle Effect Function - After

Puzzle Effect Function - After

View additional platform support for this Puzzle Effect function.

Example

Run the PuzzleEffectCommand on an image.

C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.SpecialEffects; 
 
 
public void PuzzleEffectCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"ImageProcessingDemo\Image2.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, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24); 
 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.SpecialEffects Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.