Compresses the specified image, without segmenting it, and inserts the image in the PDF file in memory.
#include "ltwrappr.h"
#include "LTCPDFComp.h"
L_INT LPDFCompressor::InsertNormal(pBitmap)
Pointer to the bitmap handle that references the image to be inserted in the PDF document.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
To segment an image using MRC segmentation, compress it, and insert the bitmap to the PDF file in memory, call LPDFCompressor::InsertMRC.
This example inserts an image in a pdf document without using MRC segmentation.
class LPDFCompressorKidIN : public LPDFCompressor
{
protected:
L_INT ImageCallBack(L_INT nPage, LPSEGMENTINFO pSegment)
{
UNREFERENCED_PARAMETER(nPage);
if(pSegment->uSegmentType == SEGTYPE_BACKGROUND)
return FAILURE;
else
return SUCCESS;
}
};
L_INT LPDFCompressor__InsertNormalExample()
{
LPDFCompressorKidIN pdf;
L_INT nRet;
LBitmap LEADBitmap;
PDFCOMPOPTIONS PDFOptions;
CString szMsg;
CString szImagesPath = MAKE_IMAGE_PATH(TEXT("IMAGE1.CMP"));
CString szOutPath = MAKE_IMAGE_PATH(TEXT("Output(InsertNormal).pdf"));
memset(&PDFOptions,0,sizeof(&PDFOptions));
nRet = pdf.Init ();
if (nRet != SUCCESS)
{
MessageBox(NULL, TEXT("Couldn't initialize pdf compressor"), TEXT("Error"), MB_OK) ;
return nRet;
}
PDFOptions.imageQuality = PDFCOMP_IMAGEQUALITY_USER;
PDFOptions.outputQuality = PDFCOMP_OUTPUTQUALITY_USER;
PDFOptions.uCleanSize = 7;
PDFOptions.uBackGroundThreshold = 15;
PDFOptions.uCombineThreshold = 100;
PDFOptions.uSegmentQuality = 50;
PDFOptions.uColorThreshold = 25;
nRet = LEADBitmap.Load((L_TCHAR *)(LPCTSTR)szImagesPath);
if(nRet != SUCCESS)
{
szMsg.Format(TEXT("Failed to load source image %s"),szImagesPath);
MessageBox(NULL,szMsg, TEXT("Error"), MB_OK) ;
pdf.Free ();
return nRet;
}
nRet = pdf.InsertNormal(&LEADBitmap);
if(nRet != SUCCESS)
return nRet;
nRet = pdf.Write ((L_TCHAR *)(LPCTSTR)szOutPath);
if (nRet ==SUCCESS)
{
szMsg.Format(TEXT("result saved to %s"),szOutPath);
MessageBox(NULL,szMsg, TEXT("Error"), MB_OK) ;
}
else
{
MessageBox(NULL, TEXT("failed to save result"), TEXT("Error"), MB_OK) ;
return nRet;
}
pdf.Free ();
return SUCCESS;
}