Foxit PDF SDK

Public 类型 | Public 成员函数 | 所有成员列表
foxit::common::Image类 参考
类 foxit::common::Image 继承关系图:

## Public 类型
enum | Orientation { e_OrientationNone = 0, e_OrientationNormal = 1, e_OrientationFlipH = 2, e_OrientationRotate180 = 3, e_OrientationFlipV = 4, e_OrientationRotate90FlipH = 5, e_OrientationRotate90 = 6, e_OrientationRotate270FlipH = 7, e_OrientationRotate270 = 8 }
| 图像方向的枚举。 更多...
enum | Type { e_Unknown = -1, e_None = 0, e_BMP = 1, e_JPG = 2, e_PNG = 3, e_GIF = 4, e_TIF = 5, e_JPX = 6, e_JBIG2 = 8, e_WEBP = 9 }
| 图像类型的枚举。 更多...

## Public 成员函数
| Image ()
| 构造函数。 更多...
| Image (const char *path)
| 构造函数，从现有图像文件路径。 更多...
| Image (const Image &other)
| 构造函数，使用另一个图像对象。 更多...
| Image (const void *buffer, size_t length)
| 构造函数，从内存缓冲区。 更多...
| Image (const wchar_t *path)
| 构造函数，从现有图像文件路径。 更多...
| Image (foxit::common::file::ReaderCallback *file_read)
| 构造函数，使用文件读取回调对象。 更多...
| ~Image ()
| 析构函数。
bool | AddFrame (const Bitmap &bitmap)
| 添加位图作为帧。（不支持的DIB格式：Bitmap::e_DIBRgb565 和 Bitmap::e_DIB8bppMask） 更多...
Bitmap | GetFrameBitmap (int index) const
| 根据索引获取帧位图。 更多...
int | GetFrameCount () const
| 获取帧数。 更多...
int | GetHeight () const
| 获取图像高度。 更多...
Orientation | GetOrientation () const
| 获取图像方向。 更多...
Type | GetType () const
| 获取图像类型。 更多...
int | GetWidth () const
| 获取图像宽度。 更多...
int | GetXDPI () const
| 获取X轴的DPI。 更多...
int | GetYDPI () const
| 获取Y轴的DPI。 更多...
bool | IsEmpty () const
| 检查当前对象是否为空。 更多...
bool | operator!= (const Image &other) const
| 不等操作符。 更多...
Image & | operator= (const Image &other)
| 赋值操作符。 更多...
bool | operator== (const Image &other) const
| 相等操作符。 更多...
bool | SaveAs (const char *file_path)
| 将当前图像保存为图像文件。 更多...
bool | SaveAs (const wchar_t *file_path)
| 将当前图像保存为图像文件。 更多...
bool | SaveAs (foxit::common::file::StreamCallback *file, const wchar_t *file_extension)
| 将当前图像保存为图像文件。 更多...
void | SetDPIs (int x_dpi, int y_dpi)
| 设置X轴和Y轴的DPI。 更多...
Public 成员函数 继承自 foxit::Base
FS_HANDLE | Handle () const
| 获取当前对象的句柄。 更多...

## 详细描述

Foxit PDF SDK提供以下图像类型：

- BMP：位图图像格式。只支持单帧。Foxit PDF SDK支持从BMP图像文件加载图像， 获取一些基本信息，获取其位图，更改其位图并将其保存为图像文件。
- JPG：联合图像专家组图像格式。只支持单帧。Foxit PDF SDK支持从JPG图像文件加载图像， 获取一些基本信息，获取其位图，更改其位图并将其保存为图像文件。
- PNG：便携式网络图形图像格式。只支持单帧。Foxit PDF SDK支持从PNG图像文件加载图像， 获取一些基本信息，获取其位图，更改其位图并将其保存为图像文件。
- GIF：图形交换格式。支持多帧。Foxit PDF SDK支持从GIF图像文件加载图像， 获取其大小，获取其位图，更改其位图并将其保存为图像文件。
- TIF：标签图像文件格式。支持多帧。Foxit PDF SDK支持从TIF图像文件加载图像， 获取一些基本信息，获取其位图，更改其位图并将其保存为图像文件。
- JPX：JPEG-2000图像格式。只支持单帧。Foxit PDF SDK支持从JPX图像文件加载图像， 获取其大小，获取其位图，更改其位图并将其保存为图像文件。
- JBIG2：JBIG2图像格式。只支持单帧。Foxit PDF SDK支持从JBIG2图像文件加载图像， 获取其大小，并将其保存为图像文件。Foxit PDF SDK尚不支持获取其帧位图。

## 成员枚举类型说明

## ◆ Orientation

enum foxit::common::Image::Orientation

图像方向的枚举。

此枚举的值应单独使用。

枚举值
e_OrientationNone | 无方向。
e_OrientationNormal | 正常方向。
e_OrientationFlipH | 水平翻转。
e_OrientationRotate180 | 顺时针旋转180度。
e_OrientationFlipV | 垂直翻转。
e_OrientationRotate90FlipH | 先顺时针旋转90度，然后水平翻转。
e_OrientationRotate90 | 顺时针旋转90度。
e_OrientationRotate270FlipH | 先逆时针旋转90度，然后水平翻转。
e_OrientationRotate270 | 逆时针旋转90度。

## ◆ Type

enum foxit::common::Image::Type

图像类型的枚举。

此枚举的值应单独使用。

枚举值
e_Unknown | 未知图像类型。
e_None | 尚未有图像类型。 注解 仅适用于新的图像对象，该对象不是从任何图像文件构造或 从其他对象检索的。
e_BMP | 图像类型是BMP。
e_JPG | 图像类型是JPG或JPEG。
e_PNG | 图像类型是PNG。
e_GIF | 图像类型是GIF。
e_TIF | 图像类型是TIF或TIFF。
e_JPX | 图像类型是JPX或JPEG-2000。
e_JBIG2 | 图像类型是JBIG2。 注解 目前，类 Image 中只有少数函数支持此类型。
e_WEBP | 图像类型是webp。 注解 目前，在Android、iOS、linux arm和mac arm平台上不支持。

## 构造及析构函数说明

## ◆ Image() [1/6]

foxit::common::Image::Image | ( |  | ) |

构造函数。

此构造函数用于构造一个新的图像对象（不包含任何数据）。 此构造的图像对象的图像类型为 Image::e_None。

## ◆ Image() [2/6]

foxit::common::Image::Image | ( | const char * | path | ) |
| explicit

构造函数，从现有图像文件路径。

参数

  [in] | path | 现有图像文件的完整路径。不应为空字符串。

## ◆ Image() [3/6]

foxit::common::Image::Image | ( | const wchar_t * | path | ) |
| explicit

构造函数，从现有图像文件路径。

参数

  [in] | path | 现有图像文件的完整路径。不应为空字符串。

## ◆ Image() [4/6]

foxit::common::Image::Image | ( | const void * | buffer,
|  | size_t | length
| ) |  |
| explicit

构造函数，从内存缓冲区。

参数

  [in] | buffer | 内存缓冲区。图像文件数据应完全加载到此内存缓冲区中。 不应为 NULL。
  [in] | length | 内存缓冲区的大小。应大于0。

## ◆ Image() [5/6]

foxit::common::Image::Image | ( | foxit::common::file::ReaderCallback * | file_read | ) |
| explicit

构造函数，使用文件读取回调对象。

参数

  [in] | file_read | 用户实现的 common::file::ReaderCallback 对象，用于加载图像文件。 不应为 NULL。

## ◆ Image() [6/6]

foxit::common::Image::Image | ( | const Image & | other | ) |

构造函数，使用另一个图像对象。

参数

  [in] | other | 另一个图像对象。

## 成员函数说明

## ◆ AddFrame()

bool foxit::common::Image::AddFrame | ( | const Bitmap & | bitmap | ) |

添加位图作为帧。（不支持的DIB格式：Bitmap::e_DIBRgb565 和 Bitmap::e_DIB8bppMask）

目前此函数不支持类型为 Image::e_JBIG2 或 Image::e_Unknown 的图像。
对于支持的图像类型：

- 如果当前图像的类型为 Image::e_TIF、Image::e_GIF 或 Image::e_None，此函数将添加新位图 作为新的最后一帧。
- 如果当前图像的类型为其他类型之一，只包含单帧， 此函数将使用新位图替换第一帧。

参数

  [in] | bitmap | 要添加或设置的有效位图帧。

返回
  true 表示成功，false 表示失败。

## ◆ GetFrameBitmap()

Bitmap foxit::common::Image::GetFrameBitmap | ( | int | index | ) | const

根据索引获取帧位图。

目前此函数不支持类型为 Image::e_JBIG2 的图像。 此函数只能支持获取以下格式的帧位图：
Bitmap::e_DIB8bppMask、Bitmap::e_DIB8bpp、 Bitmap::e_DIBRgb、Bitmap::e_DIBRgb32、 Bitmap::e_DIBArgb。
对于其他不支持的DIB格式，此函数将返回一个位图对象， 其函数 Bitmap::IsEmpty 返回 true。

参数

  [in] | index | 帧的索引。有效范围：从0到（count-1）。 count 由函数 Image::GetFrameCount 返回。

返回
  帧位图。如果返回的位图对象的函数 Bitmap::IsEmpty 返回值为 true，则表示该帧的DIB格式不受支持。

## ◆ GetFrameCount()

int foxit::common::Image::GetFrameCount | ( |  | ) | const

获取帧数。

目前此函数不支持类型为 Image::e_JBIG2 的图像。

返回
  帧数。

## ◆ GetHeight()

int foxit::common::Image::GetHeight | ( |  | ) | const

获取图像高度。

如果图像有多帧，通常第一帧的大小将被视为图像大小。

返回
  图像高度。

## ◆ GetOrientation()

Orientation foxit::common::Image::GetOrientation | ( |  | ) | const

获取图像方向。

此函数只支持类型为 Image::e_JPG 和 Image::e_TIF 的图像。

返回
  图像方向。请参考从 Image::e_OrientationNone 开始的值， 这将是其中的一个值。

## ◆ GetType()

Type foxit::common::Image::GetType | ( |  | ) | const

获取图像类型。

如果当前图像是新图像（不是从任何图像文件构造的），其类型为 Image::e_None。

返回
  图像类型。请参考从 Image::e_Unknown 开始的值， 这将是其中的一个值。

## ◆ GetWidth()

int foxit::common::Image::GetWidth | ( |  | ) | const

获取图像宽度。

如果图像有多帧，通常第一帧的大小将被视为图像大小。

返回
  图像宽度。

## ◆ GetXDPI()

int foxit::common::Image::GetXDPI | ( |  | ) | const

获取X轴的DPI。

目前此函数不支持类型为 Image::e_JPX、 Image::e_GIF、Image::e_JBIG2 或 Image::e_WEBP 的图像。
对于新图像（不是从任何图像文件构造的），X轴的默认DPI为96。

返回
  X轴的DPI值。

## ◆ GetYDPI()

int foxit::common::Image::GetYDPI | ( |  | ) | const

获取Y轴的DPI。

目前此函数不支持类型为 Image::e_JPX、 Image::e_GIF、Image::e_JBIG2 或 Image::e_WEBP 的图像。
对于新图像（不是从任何图像文件构造的），Y轴的默认DPI为96。

返回
  Y轴的DPI值。

## ◆ IsEmpty()

bool foxit::common::Image::IsEmpty | ( |  | ) | const

检查当前对象是否为空。

当前对象为空时，表示当前对象无用。

返回
  true 表示当前对象为空，false 表示不为空。

## ◆ operator!=()

bool foxit::common::Image::operator!= | ( | const Image & | other | ) | const

不等操作符。

参数

  [in] | other | 另一个图像对象。此函数将检查当前对象是否不等于该对象。

返回
  true 表示不相等，false 表示相等。

## ◆ operator=()

Image& foxit::common::Image::operator= | ( | const Image & | other | ) |

赋值操作符。

参数

  [in] | other | 另一个图像对象，其值将赋给当前对象。

返回
  当前对象本身的引用。

## ◆ operator==()

bool foxit::common::Image::operator== | ( | const Image & | other | ) | const

相等操作符。

参数

  [in] | other | 另一个图像对象。此函数将检查当前对象是否等于该对象。

返回
  true 表示相等，false 表示不相等。

## ◆ SaveAs() [1/3]

bool foxit::common::Image::SaveAs | ( | const char * | file_path | ) |

将当前图像保存为图像文件。

如果当前图像的类型为 Image::e_TIF、Image::e_GIF 或 Image::e_None，且保存的图像文件类型不支持多帧， 则只有当前图像的第一帧会被保存到图像文件中。
如果保存的图像文件类型为 Image::e_WEBP，当前图像的位图格式 应为 Bitmap::e_DIBRgb、e_DIBRgb32 或 e_DIBArgb 。
对于图像对象（不是从任何图像文件构造的），请确保在使用此函数之前 至少向图像对象添加一个有效的帧位图； 否则此函数将失败。

参数

  [in] | file_path | 保存的图像文件的完整路径。不应为空字符串。 目前此函数支持以下扩展名： .bmp、.jpg、.jpeg、.png、.tif、.tiff、.jpx、.jp2、.webp。

返回
  true 表示成功，false 表示失败。

注解
  此函数不支持将当前图像对象保存回用于构造当前图像对象的图像文件。 为了实现这一点，建议用户按以下步骤操作：
  假设当前图像对象是从名为"org.bmp"的图像文件构造的。
  1. 使用当前函数将当前图像对象保存到临时文件。这里，此临时文件 命名为"temp.tmp"。
  2. 确保当前图像对象已析构。
  3. 删除"org.bmp"并将"temp.tmp"重命名为"org.bmp"。

## ◆ SaveAs() [2/3]

bool foxit::common::Image::SaveAs | ( | const wchar_t * | file_path | ) |

将当前图像保存为图像文件。

如果当前图像的类型为 Image::e_TIF、Image::e_GIF 或 Image::e_None，且保存的图像文件类型不支持多帧， 则只有当前图像的第一帧会被保存到图像文件中。
如果保存的图像文件类型为 Image::e_WEBP，当前图像的位图格式 应为 Bitmap::e_DIBRgb、e_DIBRgb32 或 e_DIBArgb 。
对于图像对象（不是从任何图像文件构造的），请确保在使用此函数之前 至少向图像对象添加一个有效的帧位图； 否则此函数将失败。

参数

  [in] | file_path | 保存的图像文件的完整路径。不应为空字符串。 目前此函数支持以下扩展名： .bmp、.jpg、.jpeg、.png、.tif、.tiff、.jpx、.jp2。

返回
  true 表示成功，false 表示失败。

注解
  此函数不支持将当前图像对象保存回用于构造当前图像对象的图像文件。 为了实现这一点，建议用户按以下步骤操作：
  假设当前图像对象是从名为"org.bmp"的图像文件构造的。
  1. 使用当前函数将当前图像对象保存到临时文件。这里，此临时文件 命名为"temp.tmp"。
  2. 确保当前图像对象已析构。
  3. 删除"org.bmp"并将"temp.tmp"重命名为"org.bmp"。

## ◆ SaveAs() [3/3]

bool foxit::common::Image::SaveAs | ( | foxit::common::file::StreamCallback * | file,
|  | const wchar_t * | file_extension
| ) |  |

将当前图像保存为图像文件。

如果当前图像的类型为 Image::e_TIF、Image::e_GIF 或 Image::e_None，且保存的图像文件类型不支持多帧， 则只有当前图像的第一帧会被保存到图像文件中。
如果保存的图像文件类型为 Image::e_WEBP，当前图像的位图格式 应为 Bitmap::e_DIBRgb、e_DIBRgb32 或 e_DIBArgb 。
对于图像对象（不是从任何图像文件构造的），请确保在使用此函数之前 至少向图像对象添加一个有效的帧位图； 否则此函数将失败。

参数

  [in] | file | 用户实现的 file::StreamCallback 对象，用于保存图像文件。
  [in] | file_extension | 保存的图像文件的完整路径。不应为空字符串。 目前此函数支持以下扩展名： .bmp、.jpg、.jpeg、.png、.tif、.tiff、.jpx、.jp2。

返回
  true 表示成功，false 表示失败。

注解
  此函数不支持将当前图像对象保存回用于构造当前图像对象的图像文件。 为了实现这一点，建议用户按以下步骤操作：
  假设当前图像对象是从名为"org.bmp"的图像文件构造的。
  1. 使用当前函数将当前图像对象保存到临时文件。这里，此临时文件 命名为"temp.tmp"。
  2. 确保当前图像对象已析构。
  3. 删除"org.bmp"并将"temp.tmp"重命名为"org.bmp"。

## ◆ SetDPIs()

void foxit::common::Image::SetDPIs | ( | int | x_dpi,
|  | int | y_dpi
| ) |  |

设置X轴和Y轴的DPI。

目前此函数不支持类型为 Image::e_JPX、 Image::e_GIF、Image::e_JBIG2 或 Image::e_WEBP 的图像。

参数

  [in] | x_dpi | X轴的DPI。应大于0。
  [in] | y_dpi | Y轴的DPI。应大于0。

返回
  None。