LBitmap::Scramble

#include "ltwrappr.h"

virtual L_INT LBitmap::Scramble (nColStart, nRowStart nWidth, nHeight, uKey, uFlags)

L_INT32 nColStart;

/* starting column in pixels (0-based)*/

L_INT32 nRowStart;

/* starting row in pixels (0-based)*/

L_INT32 nWidth;

/* width of area to scramble in pixels */

L_INT32 nHeight;

/* height of area to scramble in pixels */

L_UINT32 uKey;

/* key that determines the scramble */

L_UINT uFlags;

/* flag that determines whether to encrypt or decrypt the area */

Scrambles all or a portion of a bitmap. This function is available in the Document/Medical Toolkits.

Parameter

Description

nColStart

Starting column in pixels (0-based).

nRowStart

Starting row in pixels (0-based).

nWidth

Width of area to scramble in pixels.

nHeight

Height of area to scramble in pixels.

uKey

Key that determines the scramble. This is an unsigned integer with a minimum value of 0 and a maximum value of 4294967295 (0xffffffff).

uFlags

Flag that determines whether to encrypt or decrypt the area. Possible values are:

 

Value

Meaning

 

SB_ENCRYPT

Encrypts the area (the reverse of a decrypt).

 

SB_DECRYPT

Decrypts the area (the reverse of an encrypt).

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

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

Some properties of shuffling:

image\sqrblit.gif No colors are introduced,

image\sqrblit.gif Color counts remain unchanged

Given the same encrypt area (defined by nColStart, nRowStart, nWidth, nHeight) and the same key, setting (uFlags = SB_ENCRYPT) is the inverse of (uFlags = SB_DECRYPT)

Required DLLs and Libraries

LTKRN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions:

LAnnEncrypt::GetEncryptOptions, LAnnEncrypt::SetEncryptOptions, Class Members

Topics:

Annotation Functions: Object Properties

 

Implementing Annotations

 

Automated User Interface for Annotations

 

Annotation Functions: Creating and Deleting Annotations

 

Types of Annotations

Example

L_VOID ExampleScrambleBitmap(LBitmap *pLBitmap) 
{
   if (!pLBitmap->IsAllocated())
      return; 
   
   pLBitmap->Scramble(
      0, 
      0, 
      pLBitmap->GetWidth()/2, 
      pLBitmap->GetHeight()/2, 
      123, 
      SB_ENCRYPT); 
}