Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fdp / include / fde_img.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _FDE_IMAGE\r
8 #define _FDE_IMAGE\r
9 class IFDE_Image;\r
10 #define FDE_IMAGEFORMAT_Unknown         -1\r
11 #define FDE_IMAGEFORMAT_BMP                     0\r
12 #define FDE_IMAGEFORMAT_GIF                     1\r
13 #define FDE_IMAGEFORMAT_JPEG            2\r
14 #define FDE_IMAGEFORMAT_PNG                     3\r
15 #define FDE_IMAGEFORMAT_TIFF            4\r
16 #define FDE_IMAGEFORMAT_JPEG2000        5\r
17 #define FDE_IMAGEFORMAT_JBig2           6\r
18 class IFDE_Image\r
19 {\r
20 public:\r
21     static IFDE_Image*          Create(IFX_Stream *pStream, FX_INT32 iFormat = FDE_IMAGEFORMAT_Unknown);\r
22     virtual void                        Release() = 0;\r
23     virtual FX_BOOL                     LoadImage() = 0;\r
24     virtual void                        FreeImage() = 0;\r
25     virtual FX_INT32            CountFrames() const = 0;\r
26     virtual FX_BOOL                     LoadFrame(FX_INT32 index) = 0;\r
27     virtual CFX_DIBitmap*       GetFrameImage() = 0;\r
28     virtual FX_INT32            GetImageFormat() const = 0;\r
29     virtual FX_INT32            GetImageWidth() const = 0;\r
30     virtual FX_INT32            GetImageHeight() const = 0;\r
31     virtual FX_INT32            GetDelayTime(FX_INT32 iFrameIndex) const = 0;\r
32     virtual FX_INT32            GetLoopCount() const = 0;\r
33     virtual FX_BOOL                     StartLoadImage(CFX_DIBitmap *pDIBitmap, FX_INT32 dibX, FX_INT32 dibY, FX_INT32 dibCX, FX_INT32 dibCY,\r
34                                            FX_INT32 imgX, FX_INT32 imgY, FX_INT32 imgCX, FX_INT32 imgCY, FX_INT32 iFrameIndex = 0) = 0;\r
35     virtual FX_INT32            DoLoadImage(IFX_Pause *pPause = NULL) = 0;\r
36     virtual void                        StopLoadImage() = 0;\r
37 };\r
38 #define FDE_IMAGEFILTER_Unknown                         -1\r
39 #define FDE_IMAGEFILTER_Opacity                         0\r
40 #define FDE_IMAGEFILTER_GrayScale                       1\r
41 #define FDE_IMAGEFILTER_BlackWhite                      2\r
42 #define FDE_IMAGEFILTER_InvertColor                     3\r
43 #define FDE_IMAGEFILTER_TransparentColor        4\r
44 #define FDE_IMAGEFILTER_MaskColor                       5\r
45 #define FDE_IMAGEFILTER_Brightness                      6\r
46 #define FDE_IMAGEFILTER_Contrast                        7\r
47 typedef struct _FDE_IMAGEFILTERPARAMS : public CFX_Target {\r
48     FX_INT32    iFilterType;\r
49 } FDE_IMAGEFILTERPARAMS, * FDE_LPIMAGEFILTERPARAMS;\r
50 typedef FDE_IMAGEFILTERPARAMS const * FDE_LPCIMAGEFILTERPARAMS;\r
51 typedef struct _FDE_OPACITYPARAMS : public FDE_IMAGEFILTERPARAMS {\r
52     FX_INT32    iOpacity;\r
53 } FDE_OPACITYPARAMS, * FDE_LPOPACITYPARAMS;\r
54 typedef FDE_OPACITYPARAMS const * FDE_LPCOPACITYPARAMS;\r
55 typedef struct _FDE_BLACKWHITEPARAMS : public FDE_IMAGEFILTERPARAMS {\r
56     FX_ARGB             dwBlackColor;\r
57     FX_ARGB             dwWhiteColor;\r
58 } FDE_BLACKWHITEPARAMS, * FDE_LPBLACKWHITEPARAMS;\r
59 typedef FDE_BLACKWHITEPARAMS const * FDE_LPCBLACKWHITEPARAMS;\r
60 typedef struct _FDE_TRANSPARENTPARAMS : public FDE_IMAGEFILTERPARAMS {\r
61     FX_ARGB             color;\r
62 } FDE_TRANSPARENTPARAMS, * FDE_LPTRANSPARENTPARAMS;\r
63 typedef FDE_TRANSPARENTPARAMS const * FDE_LPCTRANSPARENTPARAMS;\r
64 typedef struct _FDE_MASKCOLORPARAMS : public FDE_IMAGEFILTERPARAMS {\r
65     FX_ARGB             color;\r
66 } FDE_MASKCOLORPARAMS, * FDE_LPMASKCOLORPARAMS;\r
67 typedef FDE_MASKCOLORPARAMS const * FDE_LPCMASKCOLORPARAMS;\r
68 typedef struct _FDE_BRIGHTNESSPARAMS : public FDE_IMAGEFILTERPARAMS {\r
69     FX_INT32    iBrightness;\r
70 } FDE_BRIGHTNESSPARAMS, * FDE_LPBRIGHTNESSPARAMS;\r
71 typedef FDE_BRIGHTNESSPARAMS const * FDE_LPCBRIGHTNESSPARAMS;\r
72 typedef struct _FDE_CONTRASTPARAMS : public FDE_IMAGEFILTERPARAMS {\r
73     FX_INT32    iContrast;\r
74 } FDE_CONTRASTPARAMS, * FDE_LPCONTRASTPARAMS;\r
75 typedef FDE_CONTRASTPARAMS const * FDE_LPCCONTRASTPARAMS;\r
76 #endif\r