#include "ltwrappr.h"
static L_INT LColor::ConvertDirectToBitmap(nSrcFormat, nDstFormat, pSrcBuf, pBitmap, uStructSize, nWidth, nHeight, nInAlign, nOutAlign)
L_INT nSrcFormat; |
format of the input data |
L_INT nDstFormat; |
format of the output data |
L_UCHAR * pSrcBuf; |
pointer to the input buffer |
LBitmapBase * pBitmap; |
pointer to LBitmapBase class object |
L_UINT uStructSize; |
size in bytes, of pBitmap |
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 |
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.
Parameter | Description | |
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. | |
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. | |
pSrcBuf | Pointer to the buffer that references the input data. | |
pBitmap | Pointer to LBitmapBase class object that references the converted data. | |
uStructSize | Size in bytes, of the structure pointed to by pBitmap, for versioning. Use sizeof(BITMAPHANDLE). | |
nWidth | Width of pixels to be processed. | |
nHeight | Height of pixels to be processed. | |
nInAlign | Each scanline in the input buffer is a multiple of nInAlign bytes. | |
nOutAlign | Each scanline in the output buffer is a multiple of nOutAlign bytes. |
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
This function works only for conversion to BGR or RGB color space formats.
Required DLLs and Libraries
LTCLR For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
Functions: |
|
Topics: |
|
|
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName
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;
}