Files
core/PdfWriter/Src/Image.h
Ilya.Kirillov abba581648 Исправлен баг с сохранением альфа-канала у картинок, которые приходят с отрицательным stride (баг 30341).
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@64914 954022d7-b5bf-4e40-9824-e11837661b57
2016-05-21 00:33:37 +03:00

70 lines
2.6 KiB
C++

#ifndef _PDF_WRITER_SRC_IMAGE_H
#define _PDF_WRITER_SRC_IMAGE_H
#include "Objects.h"
struct jbig2ctx;
struct Pix;
namespace PdfWriter
{
class CDocument;
class CXObject : public CDictObject
{
public:
EDictType GetDictType() const
{
return dict_type_XOBJECT;
}
};
//----------------------------------------------------------------------------------------
// CImageDict
//----------------------------------------------------------------------------------------
class CImageDict : public CXObject
{
public:
CImageDict(CXref* pXref, CDocument* pDocument);
void LoadJpeg(const wchar_t* wsTempFile, unsigned int unWidth, unsigned int unHeight);
void LoadJpeg(BYTE* pBuffer, int nBufferSize, unsigned int unWidth, unsigned int unHeight);
void LoadJpx(const wchar_t* wsTempFile, unsigned int unWidth, unsigned int unHeight);
void LoadJpx(BYTE* pBuffer, int nBufferSize, unsigned int unWidth, unsigned int unHeight);
void LoadJb2(const wchar_t* wsTempFile, unsigned int unWidth, unsigned int unHeight);
void LoadCCITT4(const wchar_t* wsTempFile, unsigned int unWidth, unsigned int unHeight);
void LoadRaw(const BYTE* pBgra, unsigned int unWidth, unsigned int unHeight);
void LoadRaw(const BYTE* pBuffer, unsigned int unSize, unsigned int unWidth, unsigned int unHeight);
void LoadSMask(const BYTE* pBgra, unsigned int unWidth, unsigned int unHeight, unsigned char lAlpha = 255, bool bVerFlip = false);
void LoadSMask(const BYTE* pBuffer, unsigned int unSize, unsigned int unWidth, unsigned int unHeight);
void LoadBW(const BYTE* pImage, unsigned int unWidth, unsigned int unHeight, unsigned int unStride);
void LoadBW(Pix* pPix, unsigned int unWidth, unsigned int unHeight);
void LoadMask(Pix* pPix, unsigned int unWidth, unsigned int unHeight);
private:
CDocument* m_pDocument;
CXref* m_pXref;
};
//----------------------------------------------------------------------------------------
// CJbig2Global
//----------------------------------------------------------------------------------------
class CJbig2Global : public CDictObject
{
public:
CJbig2Global(CXref* pXref);
~CJbig2Global();
void AddImage(const BYTE* pImage, unsigned int unWidth, unsigned int unHeight, unsigned int unStride, CStream* pImageStream);
void AddImage(Pix* pPix, CStream* pImageStream);
void FlushStreams();
int GetImagesCount();
private:
CXref* m_pXref;
jbig2ctx* m_pContext;
std::vector<CStream*> m_vImages;
};
}
#endif // _PDF_WRITER_SRC_IMAGE_H