#include "ltwrappr.h"

static L_INT LBase::EncodeABIC(pInputData, nAlign, nWidth, nHeight, ppOutputData, pnLength, bBiLevel)

L_UCHAR * pInputData;

input data buffer

L_INT nAlign;

number of bytes aligned for uncompressed input data

L_INT nWidth;

image width in pixels

L_INT nHeight;

image height in pixels

L_UCHAR ** ppOutputData;

output data buffer to receive

L_SSIZE_T * pnLength;

pointer to variable

L_BOOL bBiLevel;


Compresses the input raw data using the ABIC encoder.

Parameter Description
pInputData Pointer to a buffer that contains the uncompressed raw data.
nAlign Number of bytes used to align the uncompressed raw data pointed to by pInputData.
nWidth Width of the uncompressed raw data image, in pixels.
nHeight Height of the uncompressed raw data image, in pixels.
ppOutputData Pointer to a pointer to an output data buffer to be updated with the resulting compressed ABIC data.
pnLength Pointer to a variable to be updated with the length of the resulting compressed data pointed to by ppOutputData.
bBiLevel Flag that indicates whether to encode the uncompressed input data pointed to by pInputData as bi-level or grayscale. Possible values are:
  Value Meaning
  TRUE Encodes the input buffer as 1-bit Bi-level.
  FALSE Encodes the input buffer as 4-bit Grayscale.



The function was successful.

< 1

An error occurred. Refer to Return Codes.


This function compresses the input raw data to 1-bit bi-level or 4-bit grayscale ABIC data.

The output buffer pointed by ppOutputData is allocated automatically by the function. The user is responsible to free this ppOutputData buffer by calling GlobalFreePtr() function.

Required DLLs and Libraries


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


Win32, x64.

See Also




Compressing and Decompressing Buffers


Raster Image Functions: Compression Functions


#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName 
L_INT LBase__EncodeABICExample( LBitmapBase&  Bitmap ) 
   L_UCHAR  *pData; 
   L_UCHAR  *pOutData; 
   L_SSIZE_T  nOutLength; 
   L_INT  nRet; 
   L_HANDLE pFile = NULL; /* File handle */ 
   LMemoryFile Memfile; 
   LBuffer     Buffer; 
   DWORD       wWrittenBytes; 
   nRet = 0; 
   if( Bitmap.IsAllocated() ) 
      nOutLength = 0; 
      pOutData = NULL; 
      nRet = Memfile.Save( &Buffer, FILE_RAW, Bitmap.GetBitsPerPixel(), 0, NULL ); 
      if( SUCCESS == nRet ) 
         pData = (L_UCHAR *)GlobalLock( Buffer.GetHandle() ); 
         nRet = LBase::EncodeABIC( pData, 4, Bitmap.GetWidth(), Bitmap.GetHeight(), &pOutData, &nOutLength, FALSE ); 
         if( SUCCESS == nRet ) 
            pFile = CreateFile(MAKE_IMAGE_PATH(TEXT("output.ica")), GENERIC_ALL, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); 
            if( pFile ) 
               if( !WriteFile(pFile, pOutData,(DWORD)(sizeof( L_UCHAR ) * nOutLength), &wWrittenBytes, NULL)) 
                  nRet = -1; /* failed to write data */ 
               CloseHandle(pFile ); 
               nRet = -1; /* failed to open file */ 
            GlobalFreePtr( pOutData ); 
            nRet = SUCCESS; 
            nRet = -1; /* failed to encode data */ 
         GlobalUnlock( Buffer.GetHandle() ); 
         GlobalFree( Buffer.GetHandle() ); 
      MessageBox( AfxGetApp()->m_pMainWnd->GetSafeHwnd(), TEXT("Do decode first please!"), TEXT("Information!"), MB_OK | MB_ICONINFORMATION); 
      nRet = 0; 
   return nRet; 

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++ Class Library Help