Foxit PDF SDK

fs_image.h
浏览该文件的文档.
1
15 #ifndef FS_IMAGE_H_
16 #define FS_IMAGE_H_
17
18 #include "common/fs_common.h"
19 #include "common/file/fs_file.h"
20
26 namespace foxit {
30 namespace common {
36 class Bitmap FS_FINAL : public Base {
37 public:
43 typedef enum _DIBFormat {
45 e_DIBInvalid = 0,
47 e_DIB1bpp = 0x001,
49 e_DIBRgb = 0x018,
51 e_DIBRgb32 = 0x020,
53 e_DIBArgb = 0x220,
55 e_DIBCmyk = 0x420,
57 e_DIB8bppMask = 0x108,
59 e_DIB8bpp = 0x008,
61 e_DIB8bppGray = 0x1008,
63 e_DIBAbgr = 0x222,
65 e_DIBRgb565 = 0x565
66 } DIBFormat;
67
73 typedef enum _InterpolationFlag {
75 e_Downsample = 0x01,
77 e_Quadratic = 0x02,
79 e_Bicubic = 0x04
80 } InterpolationFlag;
81
82
112 Bitmap(int width, int height, DIBFormat format, uint8* buffer = NULL, int pitch = 0);
118 Bitmap(const Bitmap& other);
120 Bitmap();
121
123 ~Bitmap();
124
132 Bitmap& operator = (const Bitmap& other);
140 bool operator == (const Bitmap& other) const;
148 bool operator != (const Bitmap& other) const;
149
157 bool IsEmpty() const;
158
177 Bitmap Clone(const RectI* clip_rect = NULL) const;
178
184 int GetWidth() const;
190 int GetHeight() const;
196 int GetPitch() const;
202 int GetBpp() const;
210 const uint8* GetBuffer() const;
217 DIBFormat GetFormat() const;
218
230 void FillRect(ARGB color, const RectI* rect = NULL);
231
244 Bitmap& ConvertFormat(DIBFormat format, void* icc_transform = NULL);
245
258 RectI CalculateBBoxByColor(ARGB backgroud_color);
259
274 RectI DetectBBoxByColorDiffer(int detection_size, int color_differ = 64);
275
337 Bitmap SwapXY(bool is_flip_horz, bool is_flip_vert, const RectI* clip_rect = NULL);
338
356 Bitmap Flip(bool is_flip_horz, bool is_flip_vert);
357
377 Bitmap StretchTo(int dest_width, int dest_height, InterpolationFlag flag,
378 const RectI* clip_rect = NULL);
379
401 Bitmap TransformTo(const Matrix& matrix, InterpolationFlag flag,
402 int& out_left, int &out_top, const RectI* clip_rect = NULL);
403
413 Bitmap GetMask(const RectI* clip_rect = NULL);
414
425 Bitmap ConvertToMono();
426
427 // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
428 explicit Bitmap(FS_HANDLE handle);
429 };
430
450 class Image FS_FINAL : public Base {
451 public:
457 typedef enum _Type {
459 e_Unknown = -1,
465 e_None = 0,
467 e_BMP = 1,
469 e_JPG = 2,
471 e_PNG = 3,
473 e_GIF = 4,
475 e_TIF = 5,
477 e_JPX = 6,
482 e_JBIG2 = 8,
487 e_WEBP = 9
488 } Type;
489
495 typedef enum _Orientation {
497 e_OrientationNone = 0,
499 e_OrientationNormal = 1,
501 e_OrientationFlipH = 2,
503 e_OrientationRotate180 = 3,
505 e_OrientationFlipV = 4,
507 e_OrientationRotate90FlipH = 5,
509 e_OrientationRotate90 = 6,
511 e_OrientationRotate270FlipH = 7,
513 e_OrientationRotate270 = 8
514 } Orientation;
515
516
523 Image();
524
530 explicit Image(const char* path);
531
537 explicit Image(const wchar_t* path);
538
546 explicit Image(const void* buffer, size_t length);
547
554 explicit Image(foxit::common::file::ReaderCallback* file_read);
555
557 ~Image();
558
564 Image(const Image& other);
565
573 Image& operator = (const Image& other);
574
582 bool IsEmpty() const;
583
591 bool operator == (const Image& other) const;
599 bool operator != (const Image& other) const;
600
609 Type GetType() const;
610
618 int GetWidth() const;
619
627 int GetHeight() const;
628
636 int GetFrameCount() const;
637
655 Bitmap GetFrameBitmap(int index) const;
656
666 int GetXDPI() const;
667
677 int GetYDPI() const;
678
699 bool AddFrame(const Bitmap& bitmap);
700
727 bool AddFrame(const char* file_path);
728
755 bool AddFrame(const wchar_t* file_path);
756
768 void SetDPIs(int x_dpi, int y_dpi);
769
800 bool SaveAs(const char* file_path);
801
832 bool SaveAs(const wchar_t* file_path);
833
865 bool SaveAs(foxit::common::file::StreamCallback* file, const wchar_t* file_extension);
866
875 Orientation GetOrientation() const;
876
877 // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
878 explicit Image(FS_HANDLE handle);
879
880 };
881 } // namespace common
882 } // namespace foxit
883 #endif // FS_IMAGE_H_
884
foxit::common::Bitmap::operator==
bool operator==(const Bitmap &other) const
相等操作符。
foxit::common::Image::e_OrientationNone
无方向。
Definition: fs_image.h:497
foxit::common::Bitmap::e_DIBCmyk
DIB 格式：32bpp CMYK 格式，位顺序为"青、品红、黄、黑"。青色在最低位。
Definition: fs_image.h:55
foxit::common::Bitmap::ConvertToMono
Bitmap ConvertToMono()
将位图转换为1位单色格式。
foxit::common::Bitmap::e_DIB1bpp
DIB 格式：1bpp 格式，双色 RGB 位图。不支持位图之间的格式转换。
Definition: fs_image.h:47
foxit::common::Bitmap::GetBpp
int GetBpp() const
获取位图每像素位数。
foxit::common::Image::e_Unknown
未知图像类型。
Definition: fs_image.h:459
foxit::common::Image::GetOrientation
Orientation GetOrientation() const
获取图像方向。
foxit::common::Bitmap
Definition: fs_image.h:36
foxit::common::Image::e_PNG
图像类型是PNG。
Definition: fs_image.h:471
foxit::common::Image::GetFrameBitmap
Bitmap GetFrameBitmap(int index) const
根据索引获取帧位图。
foxit::common::Bitmap::IsEmpty
bool IsEmpty() const
检查当前对象是否为空。
foxit::common::Image::Image
Image()
构造函数。
foxit::common::Bitmap::e_DIBArgb
DIB 格式：32bpp 格式，位顺序为"蓝、绿、红、Alpha"。蓝色在最低位。
Definition: fs_image.h:53
foxit::common::Bitmap::operator !=
bool operator !=(const Bitmap &other) const
不相等操作符。
foxit::common::Image::e_OrientationRotate90FlipH
先顺时针旋转90度，然后水平翻转。
Definition: fs_image.h:507
foxit::common::Bitmap::e_DIB8bppMask
DIB格式：8bpp Alpha遮罩。
Definition: fs_image.h:57
foxit::uint8
FX_UINT8 uint8
无符号 8 位整数。
Definition: fs_basictypes.h:203
foxit::common::Bitmap::operator=
Bitmap & operator=(const Bitmap &other)
赋值操作符。
foxit::common::Bitmap::e_DIBRgb
DIB 格式：24bpp 格式，位顺序为"蓝、绿、红"。蓝色在最低位。
Definition: fs_image.h:49
foxit::common::Image::e_OrientationRotate270FlipH
先逆时针旋转90度，然后水平翻转。
Definition: fs_image.h:511
fs_file.h
文件操作相关定义和函数的头文件。
IFX_FileRead
文件读取接口。
Definition: fx_stream.h:587
foxit::common::Bitmap::DIBFormat
DIBFormat
DIB 格式的枚举。
Definition: fs_image.h:43
foxit::common::Bitmap::ConvertFormat
Bitmap & ConvertFormat(DIBFormat format, void *icc_transform=0)
将位图转换为另一种指定的DIB格式。
foxit::common::Bitmap::TransformTo
Bitmap TransformTo(const Matrix &matrix, InterpolationFlag flag, int &out_left, int &out_top, const RectI *clip_rect=0)
将当前位图（作为源位图）转换到目标位图。
foxit::common::Image::GetHeight
int GetHeight() const
获取图像高度。
foxit::common::Image::e_GIF
图像类型是GIF。
Definition: fs_image.h:473
foxit::common::Bitmap::Clone
Bitmap Clone(const RectI *clip_rect=0) const
克隆当前位图，使用指定的裁剪矩形。
foxit::common::Image::~Image
~Image()
析构函数。
foxit::common::Bitmap::GetFormat
DIBFormat GetFormat() const
获取位图格式。
foxit::common::Image::e_JPX
图像类型是JPX或JPEG-2000。
Definition: fs_image.h:477
foxit::common::Image::e_WEBP
图像类型是webp。
Definition: fs_image.h:487
foxit::common::Image::AddFrame
bool AddFrame(const Bitmap &bitmap)
添加位图作为帧。（不支持的DIB格式：Bitmap::e_DIBRgb565 和 Bitmap::e_DIB8bppMask）
foxit::common::Bitmap::e_DIB8bppGray
DIB格式：8bpp格式，256色灰度位图。
Definition: fs_image.h:61
foxit::common::Bitmap::e_DIBRgb565
16bpp格式，位顺序：红色5位，绿色6位，蓝色5位。红色在最低位。
Definition: fs_image.h:65
foxit::common::Bitmap::StretchTo
Bitmap StretchTo(int dest_width, int dest_height, InterpolationFlag flag, const RectI *clip_rect=0)
按不同大小拉伸。
foxit::common::Image::SaveAs
bool SaveAs(const char *file_path)
将当前图像保存为图像文件。
foxit::common::Bitmap::Bitmap
Bitmap()
构造函数，作为空位图对象。
foxit::common::Image::operator=
Image & operator=(const Image &other)
赋值操作符。
foxit::common::Bitmap::e_DIBAbgr
DIB格式：32bpp格式，位顺序为"红、绿、蓝、Alpha"。红色在最低位。
Definition: fs_image.h:63
foxit::common::Bitmap::CalculateBBoxByColor
RectI CalculateBBoxByColor(ARGB backgroud_color)
根据给定的背景色计算边界框。
foxit::common::Image::e_OrientationRotate270
逆时针旋转90度。
Definition: fs_image.h:513
foxit::common::Image::e_OrientationRotate90
顺时针旋转90度。
Definition: fs_image.h:509
foxit::common::Bitmap::SwapXY
Bitmap SwapXY(bool is_flip_horz, bool is_flip_vert, const RectI *clip_rect=0)
交换位图的X、Y坐标。交换后，图像还可以同时翻转。
foxit::ARGB
uint32 ARGB
ARGB 颜色类型，32 位，((b) | ((g) << 8) | ((r) << 16)) | ((a) << 24)
Definition: fs_basictypes.h:209
foxit::common::Image::e_OrientationRotate180
顺时针旋转180度。
Definition: fs_image.h:503
foxit::common::Bitmap::e_DIBRgb32
DIB 格式：32bpp 格式，位顺序为"蓝、绿、红、未使用"。蓝色在最低位。
Definition: fs_image.h:51
IFX_FileStream
文件流接口，用于读取和写入。
Definition: fx_stream.h:692
foxit::common::Image::e_OrientationNormal
正常方向。
Definition: fs_image.h:499
foxit::common::Bitmap::FillRect
void FillRect(ARGB color, const RectI *rect=0)
用指定颜色填充当前位图。
foxit::common::Bitmap::e_DIBInvalid
无效的 DIB 格式。
Definition: fs_image.h:45
foxit::common::Bitmap::e_Downsample
如果设置，对于缩小或旋转不进行半色调处理。
Definition: fs_image.h:75
foxit::common::Image::GetType
Type GetType() const
获取图像类型。
foxit::common::Image::operator !=
bool operator !=(const Image &other) const
不等操作符。
foxit::common::Image::IsEmpty
bool IsEmpty() const
检查当前对象是否为空。
foxit::common::Bitmap::~Bitmap
~Bitmap()
析构函数。
foxit::common::Bitmap::e_DIB8bpp
DIB格式：8bpp格式，256色RGB位图。
Definition: fs_image.h:59
foxit::common::Bitmap::GetWidth
int GetWidth() const
获取位图宽度。
foxit::FS_HANDLE
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:213
fs_common.h
通用定义和类的头文件。
foxit::common::Image::e_OrientationFlipV
垂直翻转。
Definition: fs_image.h:505
foxit::common::Image::GetFrameCount
int GetFrameCount() const
获取帧数。
FX_RECT
Definition: fx_coordinates.h:596
foxit::common::Bitmap::e_Quadratic
如果设置，对于拉伸或变换进行插值处理。
Definition: fs_image.h:77
foxit::common::Bitmap::e_Bicubic
如果设置，对于拉伸或变换进行双三次插值处理。
Definition: fs_image.h:79
foxit::Base
Definition: fs_basictypes.h:465
foxit::common::Image::GetWidth
int GetWidth() const
获取图像宽度。
foxit::common::Bitmap::GetHeight
int GetHeight() const
获取位图高度。
foxit::common::Image::Type
Type
图像类型的枚举。
Definition: fs_image.h:457
foxit::common::Bitmap::GetBuffer
const uint8 * GetBuffer() const
获取位图缓冲区。
foxit
Foxit命名空间。
Definition: fs_taggedpdf.h:27
foxit::common::Image::e_TIF
图像类型是TIF或TIFF。
Definition: fs_image.h:475
foxit::common::Bitmap::Flip
Bitmap Flip(bool is_flip_horz, bool is_flip_vert)
翻转位图。
foxit::common::Image::GetXDPI
int GetXDPI() const
获取X轴的DPI。
foxit::common::Image::Orientation
Orientation
图像方向的枚举。
Definition: fs_image.h:495
foxit::common::Bitmap::GetMask
Bitmap GetMask(const RectI *clip_rect=0)
如果位图有遮罩则获取该遮罩。
foxit::common::Image::e_OrientationFlipH
水平翻转。
Definition: fs_image.h:501
foxit::common::Bitmap::GetPitch
int GetPitch() const
获取位图间距。
foxit::common::Image::GetYDPI
int GetYDPI() const
获取Y轴的DPI。
NULL
#define NULL
空指针值。
Definition: fx_system.h:792
foxit::common::Bitmap::DetectBBoxByColorDiffer
RectI DetectBBoxByColorDiffer(int detection_size, int color_differ=64)
根据内容与边距之间的给定颜色差异检测内容的边界框。
foxit::common::Image::e_None
尚未有图像类型。
Definition: fs_image.h:465
CFX_Matrix
Definition: fx_coordinates.h:1076
foxit::common::Image::SetDPIs
void SetDPIs(int x_dpi, int y_dpi)
设置X轴和Y轴的DPI。
foxit::common::Bitmap::InterpolationFlag
InterpolationFlag
位图插值标志的枚举。
Definition: fs_image.h:73
foxit::common::Image::e_JPG
图像类型是JPG或JPEG。
Definition: fs_image.h:469
foxit::common::Image
Definition: fs_image.h:450
foxit::common::Image::e_BMP
图像类型是BMP。
Definition: fs_image.h:467
foxit::common::Image::operator==
bool operator==(const Image &other) const
相等操作符。
foxit::common::Image::e_JBIG2
图像类型是JBIG2。
Definition: fs_image.h:482