LColor::ConvertDirectToBitmap

#include "ltwrappr.h"

static L_INT LColor::ConvertDirectToBitmap(nSrcFormat, nDstFormat, pSrcBuf, pBitmap, uStructSize, nWidth, nHeight, nInAlign, nOutAlign)

Converts image data in a buffer from one color conversion model to RGB\BGR directly using built in algorithms, and sets the converted data in a LBitmapBase class object.

Parameters

L_INT nSrcFormat

Format of the source data. Possible values are:

Value Meaning
CCS_RGB [0x00] Color conversion is RGB.
CCS_YUV [0x01] Color conversion is YUV.
CCS_CMYK [0x02] Color conversion is CMYK.
CCS_HSV [0x03] Color conversion is HSV.
CCS_HLS [0x04] Color conversion is HLS.
CCS_YIQ [0x05] Color conversion is YIQ.
CCS_CMY [0x06] Color conversion is CMY.
CCS_LAB [0x07] Color conversion is CIELAB.
CCS_XYZ [0x08] Color conversion is CIEXYZ.
CCS_YCCK [0x0B] Color conversion is YCCK.
CCS_BGR [0x0C] Color conversion is BGR.
CCS_UYVY [0x0E] Color conversion is UYVY.
CCS_YUY2 [0x09] Color conversion is YUY2.
CCS_YVU9 [0x0A] Color conversion is YVU9.
CCS_YCC [0x0F] Color conversion is YCC.
CCS_IHS [0x80] Color conversion is IHS.
CCS_Y41P [0x0D] Color conversion is Y41P.
CCS_ARGB4 [0x90] Color conversion is ARGB4.

L_INT nDstFormat

Format of the output data. Possible values are:

Value Meaning
CCS_RGB [0x00] Color conversion is RGB.
CCS_BGR [0x0C] Color conversion is BGR.

L_UCHAR * pSrcBuf

Pointer to the buffer that references the input data.

LBitmapBase * pBitmap

Pointer to LBitmapBase class object that references the converted data.

L_UINT uStructSize

Size in bytes, of the structure pointed to by pBitmap, for versioning. Use sizeof(BITMAPHANDLE).

L_INT nWidth

Width of pixels to be processed.

L_INT nHeight

Height of pixels to be processed.

L_INT nInAlign

Each scanline in the input buffer is a multiple of nInAlign bytes.

L_INT nOutAlign

Each scanline in the output buffer is a multiple of nOutAlign bytes.

Returns

Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

This function works only for conversion to BGR or RGB color space formats.

Required DLLs and Libraries

See Also

Functions

Topics

Example

L_INT LColor_ConvertDirectToBitmapExample() 
{ 
   L_INT nRet;  
   LColor lClr; 
   LBitmapBase LeadBitmap;   /* Bitmap handle to hold the loaded image. */ 
   LBitmapBase OutBitmap; 
 
   /* Load the bitmap, keeping the bits per pixel of the file */ 
   nRet = LeadBitmap.Load(MAKE_IMAGE_PATH(TEXT("IMAGE1.CMP")), 0, ORDER_BGR); 
   if(nRet !=SUCCESS) 
      return nRet; 
 
   LBuffer Input(sizeof(L_UCHAR) * (LeadBitmap.GetMemSize())); 
   LeadBitmap.GetRowCol(&Input, 0, 0); 
 
   L_UCHAR* pInput = (L_UCHAR*)(Input.Lock());     /*input buffer*/ 
   L_INT nWidth = LeadBitmap.GetWidth();           /*pixels width*/ 
   L_INT nHeight = LeadBitmap.GetHeight();         /*pixels height*/ 
 
   /* direct conversion using built in options */ 
   nRet = lClr.ConvertDirectToBitmap(CCS_CMYK, CCS_RGB, pInput, &OutBitmap, sizeof(BITMAPHANDLE), nWidth, nHeight, 0, 0); 
   if(nRet !=SUCCESS) 
      return nRet; 
 
   nRet = OutBitmap.Save (MAKE_IMAGE_PATH(TEXT("Result.BMP")), FILE_BMP, 24, 0, NULL); 
   if(nRet !=SUCCESS) 
      return nRet; 
 
   //free bitmap  
   if(LeadBitmap.IsAllocated())   
      LeadBitmap.Free(); 
 
   if(OutBitmap.IsAllocated())   
      OutBitmap.Free(); 
 
   return SUCCESS; 
} 
Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Color Conversion C++ Class Library Help