←Select platform

ScrambleCommand Class

Summary

Scrambles all or a portion of an image.

Syntax
C#
VB
Objective-C
C++
Java
public class ScrambleCommand : RasterCommand 
Public Class ScrambleCommand  
   Inherits RasterCommand 
@interface LTScrambleCommand : LTRasterCommand 
public class ScrambleCommand extends RasterCommand 
public ref class ScrambleCommand : public 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#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using LeadtoolsExamples.Common; 
 
public void ScrambleCommandExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp"); 
   string scrambledFileName = Path.Combine(ImagesPath.Path, "Image1_scrambled.bmp"); 
   string unscrambledFileName = Path.Combine(ImagesPath.Path, "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(); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
 
Public Sub ScrambleCommandExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") 
   Dim scrambledFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_scrambled.bmp") 
   Dim unscrambledFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_unscrambled.bmp") 
 
   ' Load the source image from disk 
   Dim image As RasterImage = codecs.Load(srcFileName) 
 
   Dim rc As LeadRect = New LeadRect(0, 0, image.Width \ 2, image.Height \ 2) 
   Dim key As Integer = 123 
 
   ' Scramble it and save it to disk 
   Dim command As ScrambleCommand = 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() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Examples; 
using Leadtools.ImageProcessing; 
using Leadtools.Windows.Media; 
 
//public void ScrambleCommandExample(RasterImage image, Stream destStream1, Stream destStream2) 
//{ 
//   RasterCodecs codecs = new RasterCodecs(); 
 
//   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.LeadRect = rc; 
//   command.Key = key; 
//   command.Run(image); 
//   codecs.Save(image, destStream1, RasterImageFormat.Bmp, 24); 
 
//   // Unscramble the image and save it to disk 
//   command.Flags = ScrambleCommandFlags.Decrypt; 
//   command.Run(image); 
//   codecs.Save(image, destStream2, RasterImageFormat.Bmp, 24); 
 
//   // Clean Up 
//   image.Dispose(); 
//} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.Windows.Media 
 
'public void ScrambleCommandExample(RasterImage image, Stream destStream1, Stream destStream2) 
'{ 
'   RasterCodecs codecs = new RasterCodecs(); 
 
'   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.LeadRect = rc; 
'   command.Key = key; 
'   command.Run(image); 
'   codecs.Save(image, destStream1, RasterImageFormat.Bmp, 24); 
 
'   // Unscramble the image and save it to disk 
'   command.Flags = ScrambleCommandFlags.Decrypt; 
'   command.Run(image); 
'   codecs.Save(image, destStream2, RasterImageFormat.Bmp, 24); 
 
'   // Clean Up 
'   image.Dispose(); 
'} 

Requirements

Target Platforms

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

Leadtools Assembly