Foxit PDF SDK
foxit::common::Image类 参考
类 foxit::common::Image 继承关系图:
foxit::Base

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 wchar_t *path)
 构造函数,从现有图像文件路径。 更多...
 
 Image (const void *buffer, size_t length)
 构造函数,从内存缓冲区。 更多...
 
 Image (foxit::common::file::ReaderCallback *file_read)
 构造函数,使用文件读取回调对象。 更多...
 
 Image (const Image &other)
 构造函数,使用另一个图像对象。 更多...
 
 ~Image ()
 析构函数。
 
bool AddFrame (const Bitmap &bitmap)
 添加位图作为帧。(不支持的DIB格式:Bitmap::e_DIBRgb565Bitmap::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
 不等操作符。 更多...
 
Imageoperator= (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

图像方向的枚举。

此枚举的值应单独使用。

枚举值
e_OrientationNone 

无方向。

e_OrientationNormal 

正常方向。

e_OrientationFlipH 

水平翻转。

e_OrientationRotate180 

顺时针旋转180度。

e_OrientationFlipV 

垂直翻转。

e_OrientationRotate90FlipH 

先顺时针旋转90度,然后水平翻转。

e_OrientationRotate90 

顺时针旋转90度。

e_OrientationRotate270FlipH 

先逆时针旋转90度,然后水平翻转。

e_OrientationRotate270 

逆时针旋转90度。

◆ 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_DIBRgb565Bitmap::e_DIB8bppMask

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

  • 如果当前图像的类型为 Image::e_TIFImage::e_GIFImage::e_None,此函数将添加新位图 作为新的最后一帧。
  • 如果当前图像的类型为其他类型之一,只包含单帧, 此函数将使用新位图替换第一帧。
参数
[in]bitmap要添加或设置的有效位图帧。
返回
true 表示成功,false 表示失败。

◆ GetFrameBitmap()

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

根据索引获取帧位图。

目前此函数不支持类型为 Image::e_JBIG2 的图像。 此函数只能支持获取以下格式的帧位图:
Bitmap::e_DIB8bppMaskBitmap::e_DIB8bppBitmap::e_DIBRgbBitmap::e_DIBRgb32Bitmap::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_JPGImage::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_JPXImage::e_GIFImage::e_JBIG2Image::e_WEBP 的图像。
对于新图像(不是从任何图像文件构造的),X轴的默认DPI为96。

返回
X轴的DPI值。

◆ GetYDPI()

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

获取Y轴的DPI。

目前此函数不支持类型为 Image::e_JPXImage::e_GIFImage::e_JBIG2Image::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_TIFImage::e_GIFImage::e_None,且保存的图像文件类型不支持多帧, 则只有当前图像的第一帧会被保存到图像文件中。
如果保存的图像文件类型为 Image::e_WEBP,当前图像的位图格式 应为 Bitmap::e_DIBRgbe_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_TIFImage::e_GIFImage::e_None,且保存的图像文件类型不支持多帧, 则只有当前图像的第一帧会被保存到图像文件中。
如果保存的图像文件类型为 Image::e_WEBP,当前图像的位图格式 应为 Bitmap::e_DIBRgbe_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_TIFImage::e_GIFImage::e_None,且保存的图像文件类型不支持多帧, 则只有当前图像的第一帧会被保存到图像文件中。
如果保存的图像文件类型为 Image::e_WEBP,当前图像的位图格式 应为 Bitmap::e_DIBRgbe_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_JPXImage::e_GIFImage::e_JBIG2Image::e_WEBP 的图像。

参数
[in]x_dpiX轴的DPI。应大于0。
[in]y_dpiY轴的DPI。应大于0。
返回
None。