summaryrefslogtreecommitdiff
path: root/xfa/src/fdp/include/fde_img.h
blob: f5ffda6a5a4c28805b059f2a47632dc2be02d2ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef _FDE_IMAGE
#define _FDE_IMAGE
class IFDE_Image;
#define FDE_IMAGEFORMAT_Unknown		-1
#define FDE_IMAGEFORMAT_BMP			0
#define FDE_IMAGEFORMAT_GIF			1
#define FDE_IMAGEFORMAT_JPEG		2
#define FDE_IMAGEFORMAT_PNG			3
#define FDE_IMAGEFORMAT_TIFF		4
#define FDE_IMAGEFORMAT_JPEG2000	5
#define FDE_IMAGEFORMAT_JBig2		6
class IFDE_Image
{
public:
    static IFDE_Image*		Create(IFX_Stream *pStream, int32_t iFormat = FDE_IMAGEFORMAT_Unknown);
    virtual ~IFDE_Image() {}
    virtual void			Release() = 0;
    virtual FX_BOOL			LoadImage() = 0;
    virtual void			FreeImage() = 0;
    virtual int32_t		CountFrames() const = 0;
    virtual FX_BOOL			LoadFrame(int32_t index) = 0;
    virtual CFX_DIBitmap*	GetFrameImage() = 0;
    virtual int32_t		GetImageFormat() const = 0;
    virtual int32_t		GetImageWidth() const = 0;
    virtual int32_t		GetImageHeight() const = 0;
    virtual int32_t		GetDelayTime(int32_t iFrameIndex) const = 0;
    virtual int32_t		GetLoopCount() const = 0;
    virtual FX_BOOL			StartLoadImage(CFX_DIBitmap *pDIBitmap, int32_t dibX, int32_t dibY, int32_t dibCX, int32_t dibCY,
                                           int32_t imgX, int32_t imgY, int32_t imgCX, int32_t imgCY, int32_t iFrameIndex = 0) = 0;
    virtual int32_t		DoLoadImage(IFX_Pause *pPause = NULL) = 0;
    virtual void			StopLoadImage() = 0;
};
#define FDE_IMAGEFILTER_Unknown				-1
#define FDE_IMAGEFILTER_Opacity				0
#define FDE_IMAGEFILTER_GrayScale			1
#define FDE_IMAGEFILTER_BlackWhite			2
#define FDE_IMAGEFILTER_InvertColor			3
#define FDE_IMAGEFILTER_TransparentColor	4
#define FDE_IMAGEFILTER_MaskColor			5
#define FDE_IMAGEFILTER_Brightness			6
#define FDE_IMAGEFILTER_Contrast			7
typedef struct _FDE_IMAGEFILTERPARAMS : public CFX_Target {
    int32_t	iFilterType;
} FDE_IMAGEFILTERPARAMS, * FDE_LPIMAGEFILTERPARAMS;
typedef FDE_IMAGEFILTERPARAMS const * FDE_LPCIMAGEFILTERPARAMS;
typedef struct _FDE_OPACITYPARAMS : public FDE_IMAGEFILTERPARAMS {
    int32_t	iOpacity;
} FDE_OPACITYPARAMS, * FDE_LPOPACITYPARAMS;
typedef FDE_OPACITYPARAMS const * FDE_LPCOPACITYPARAMS;
typedef struct _FDE_BLACKWHITEPARAMS : public FDE_IMAGEFILTERPARAMS {
    FX_ARGB		dwBlackColor;
    FX_ARGB		dwWhiteColor;
} FDE_BLACKWHITEPARAMS, * FDE_LPBLACKWHITEPARAMS;
typedef FDE_BLACKWHITEPARAMS const * FDE_LPCBLACKWHITEPARAMS;
typedef struct _FDE_TRANSPARENTPARAMS : public FDE_IMAGEFILTERPARAMS {
    FX_ARGB		color;
} FDE_TRANSPARENTPARAMS, * FDE_LPTRANSPARENTPARAMS;
typedef FDE_TRANSPARENTPARAMS const * FDE_LPCTRANSPARENTPARAMS;
typedef struct _FDE_MASKCOLORPARAMS : public FDE_IMAGEFILTERPARAMS {
    FX_ARGB		color;
} FDE_MASKCOLORPARAMS, * FDE_LPMASKCOLORPARAMS;
typedef FDE_MASKCOLORPARAMS const * FDE_LPCMASKCOLORPARAMS;
typedef struct _FDE_BRIGHTNESSPARAMS : public FDE_IMAGEFILTERPARAMS {
    int32_t	iBrightness;
} FDE_BRIGHTNESSPARAMS, * FDE_LPBRIGHTNESSPARAMS;
typedef FDE_BRIGHTNESSPARAMS const * FDE_LPCBRIGHTNESSPARAMS;
typedef struct _FDE_CONTRASTPARAMS : public FDE_IMAGEFILTERPARAMS {
    int32_t	iContrast;
} FDE_CONTRASTPARAMS, * FDE_LPCONTRASTPARAMS;
typedef FDE_CONTRASTPARAMS const * FDE_LPCCONTRASTPARAMS;
#endif