L_ScrambleBitmap

#include "l_bitmap.h"

L_LTKRN_API L_INT L_ScrambleBitmap(pBitmap, nColStart, nRowStart, nWidth, nHeight, uKey, uFlags)

pBITMAPHANDLE pBitmap;

pointer to a bitmap handle for the bitmap to be scrambled

L_INT nColStart;

starting column in pixels (0-based)

L_INT nRowStart;

starting row in pixels (0-based)

L_INT nWidth;

width of area to scramble in pixels

L_INT nHeight;

height of area to scramble in pixels

L_UINT 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.

Parameter Description
pBitmap Pointer to a bitmap handle for the bitmap to be scrambled.
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).
  SB_INTERSECT Intersect the specified rectangle with the bitmaps rectangle.

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:

No colors are introduced,

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.

Platforms

Win32, x64, Linux.

See Also

Functions:

L_AnnGetMetafile, L_AnnSetMetafile, L_AnnGetPredefinedMetafile, L_AnnSetPredefinedMetafile, L_AnnEncryptApply, L_AnnSetEncryptOptions, L_AnnGetEncryptOptions

Topics:

Annotation Functions: Object Properties

 

Annotation Objects - Default Values

 

Annotation Objects - Automated Features

 

Implementing an Automated Annotation Program

 

Implementing a Non-automated Annotation Program

Example

This example scrambles the upper left quadrant of a bitmap using the key 123

L_INT ScrambleBitmapExample(pBITMAPHANDLE pBitmap) 
{ 
   L_INT nRet; 
   if (!pBitmap) 
      return ERROR_NO_BITMAP; 
   nRet = L_ScrambleBitmap(pBitmap, 0, 0, BITMAPWIDTH(pBitmap)/2, BITMAPHEIGHT(pBitmap)/2, 123, SB_ENCRYPT); 
   if(nRet != SUCCESS) 
      return nRet; 
   return SUCCESS; 
} 

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS Raster Imaging C API Help