←Select platform

ScrambleCommand Class

Summary
Scrambles all or a portion of an image.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public class ScrambleCommand : RasterCommand 
@interface LTScrambleCommand : LTRasterCommand 
public class ScrambleCommand extends RasterCommand 
public ref class ScrambleCommand : public RasterCommand   
class ScrambleCommand(RasterCommand): 
Remarks

This command is available in the Document/Medical Imaging editions toolkits.

Scrambling a rectangular area means that the pixels in that area are shuffled around into a pseudo-random location within the area.

  • No colors are introduced
  • Color counts remain unchanged

Given the same encrypt area (defined by ScrambleCommand.Rectangle) and the same ScrambleCommand.Key, setting ( ScrambleCommand.Flags = ScrambleCommandFlags.Encrypt) is the inverse of (ScrambleCommand.Flags = ScrambleCommandFlags.Decrypt).

Example

This example will scramble the upper-left quadrant of an image using the key 123 and then save the image to disk. It will then unscramble it and saves it disk for comparison.

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
 
 
public void ScrambleCommandExample() 
{ 
	RasterCodecs codecs = new RasterCodecs(); 
 
	string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
	string scrambledFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_scrambled.bmp"); 
	string unscrambledFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_unscrambled.bmp"); 
 
	// Load the source image from disk 
	RasterImage image = codecs.Load(srcFileName); 
 
	LeadRect rc = new LeadRect(0, 0, image.Width / 2, image.Height / 2); 
	int key = 123; 
 
	// Scramble it and save it to disk 
	ScrambleCommand command = new ScrambleCommand(); 
	command.Flags = ScrambleCommandFlags.Encrypt; 
	command.Rectangle = rc; 
	command.Key = key; 
	command.Run(image); 
	codecs.Save(image, scrambledFileName, RasterImageFormat.Bmp, 24); 
 
	// Unscramble the image and save it to disk 
	command.Flags = ScrambleCommandFlags.Decrypt; 
	command.Run(image); 
	codecs.Save(image, unscrambledFileName, RasterImageFormat.Bmp, 24); 
 
	// Clean Up 
	image.Dispose(); 
	codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.*; 
 
 
public void scrambleCommandExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   RasterCodecs codecs = new RasterCodecs(); 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "rgsref.cmp"); 
   String scrambledFileName = combine(LEAD_VARS_IMAGES_DIR, "rgsref_scrambled.bmp"); 
   String unscrambledFileName = combine(LEAD_VARS_IMAGES_DIR, "rgsref_unscrambled.bmp"); 
 
   // Load the source image from disk 
   RasterImage image = codecs.load(srcFileName); 
 
   LeadRect rc = new LeadRect(0, 0, image.getWidth() / 2, image.getHeight() / 2); 
   int key = 123; 
 
   // Scramble it and save it to disk 
   ScrambleCommand command = new ScrambleCommand(); 
   command.setFlags(ScrambleCommandFlags.ENCRYPT.getValue()); 
   command.setRectangle(rc); 
   command.setKey(key); 
   command.run(image); 
   codecs.save(image, scrambledFileName, RasterImageFormat.BMP, 24); 
 
   // Unscramble the image and save it to disk 
   command.setFlags(ScrambleCommandFlags.DECRYPT.getValue()); 
   command.run(image); 
   codecs.save(image, unscrambledFileName, RasterImageFormat.BMP, 24); 
 
   assertTrue("file unsuccessfully saved to " + unscrambledFileName, (new File(unscrambledFileName)).exists()); 
   System.out.printf("File saved successfully to %s%n", unscrambledFileName); 
 
   // Clean Up 
   image.dispose(); 
   codecs.dispose(); 
} 
Requirements

Target Platforms

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

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