Foxit PDF SDK
FSDK::Bitmap类 参考

Public 成员函数

 CalculateBBoxByColor (backgroud_color)
 根据给定的背景颜色计算边界框。 更多...
 
 Clone (clip_rect)
 克隆当前位图,使用指定的裁剪矩形。 更多...
 
 constructor (width, height, format, buffer, pitch)
 带参数的构造函数。 更多...
 
 constructor ()
 作为空位图对象的构造函数。
 
 ConvertFormat (format, icc_transform)
 将位图转换为另一种指定的 DIB 格式。 更多...
 
 ConvertToMono ()
 将位图转换为 1 位单色格式。 更多...
 
 DetectBBoxByColorDiffer (detection_size, color_differ)
 根据给定的内容与边距之间的颜色差异检测内容的边界框。 更多...
 
 FillRect (color, rect)
 使用指定的颜色填充当前位图。 更多...
 
 Flip (is_flip_horz, is_flip_vert)
 翻转位图。 更多...
 
 GetBpp ()
 获取位图每像素位数。 更多...
 
 GetBuffer ()
 获取位图缓冲区。 更多...
 
 GetFormat ()
 获取位图格式。 更多...
 
 GetHeight ()
 获取位图高度。 更多...
 
 GetMask (clip_rect)
 如果位图有掩码,则获取掩码。 更多...
 
 GetPitch ()
 获取位图间距。 更多...
 
 GetWidth ()
 获取位图宽度。 更多...
 
 IsEmpty ()
 检查当前对象是否为空。 更多...
 
 StretchTo (dest_width, dest_height, flag, clip_rect)
 拉伸到不同大小。 更多...
 
 SwapXY (is_flip_horz, is_flip_vert, clip_rect)
 交换 X,Y 坐标的位图。交换后,图像也可以同时翻转。 更多...
 
 TransformTo (matrix, flag, out_left, out_top, clip_rect)
 将当前位图(作为源位图)转换为目标位图。 更多...
 

静态 Public 属性

static e_Bicubic
 如果设置,拉伸或转换时进行双三次插值。
 
static e_DIB1bpp
 DIB 格式:1bpp 格式,双色 RGB 位图。它不支持格式转换和渲染。
 
static e_DIB8bpp
 DIB 格式:8bpp 格式,256 色 RGB 位图。
 
static e_DIB8bppGray
 DIB 格式:8bpp 格式,256 色灰度位图。
 
static e_DIB8bppMask
 DIB 格式:8bpp alpha 掩码。
 
static e_DIBAbgr
 DIB 格式:32bpp 格式,位顺序为"红、绿、蓝、Alpha"。红色在最低位。
 
static e_DIBArgb
 DIB 格式:32bpp 格式,位顺序为"蓝、绿、红、Alpha"。蓝色在最低位。
 
static e_DIBCmyk
 DIB 格式:32bpp CMYK 格式,位顺序为"青、品红、黄、黑"。青色在最低位。
 
static e_DIBInvalid
 DIB 格式的枚举。 更多...
 
static e_DIBRgb
 DIB 格式:24bpp 格式,位顺序为"蓝、绿、红"。蓝色在最低位。
 
static e_DIBRgb32
 DIB 格式:32bpp 格式,位顺序为"蓝、绿、红、未使用"。蓝色在最低位。
 
static e_DIBRgb565
 16bpp 格式,位顺序:红 5 位、绿 6 位、蓝 5 位。红色在最低位。
 
static e_Downsample
 位图插值标志的枚举。 更多...
 
static e_Quadratic
 如果设置,拉伸或转换时进行插值。
 

详细描述

位图是 Foxit PDF SDK 中最重要的数据结构之一。它通常用于渲染。 此类可以构造一个新的位图对象(不是从其他对象检索的),并提供方法来 获取信息或操作位图。

成员函数说明

◆ CalculateBBoxByColor()

FSDK::Bitmap::CalculateBBoxByColor ( backgroud_color  )

根据给定的背景颜色计算边界框。

此函数可以支持以下格式:
FSDK.Bitmap.e_DIB8bppMaskFSDK.Bitmap.e_DIB8bppFSDK.Bitmap.e_DIBRgbFSDK.Bitmap.e_DIBRgb32FSDK.Bitmap.e_DIBArgb

参数
[in]backgroud_color有效的背景颜色。格式:0xAARRGGBB。
返回
内容的边界框矩形。

◆ Clone()

FSDK::Bitmap::Clone ( clip_rect  )

克隆当前位图,使用指定的裁剪矩形。

参数
[in]clip_rect当前位图中的裁剪区域,用于指定要克隆的区域。
  • 对于位图格式 FSDK.Bitmap.e_DIBRgb565, 目前只支持克隆整个位图,所以这应该始终为 null
  • 对于其他格式,这可以是 null 或有效值。如果这是 null, 表示克隆整个位图。如果这不是 null,它指定 位图中要克隆的裁剪区域,克隆的位图将 具有与裁剪区域相同的大小。
默认值:null
返回
作为克隆结果的新位图。

◆ constructor()

FSDK::Bitmap::constructor ( width  ,
height  ,
format  ,
buffer  ,
pitch   
)

带参数的构造函数。

如果参数 buffer 不为 null,它应该由应用程序初始化; 如果参数 buffernull,Foxit PDF SDK 将内部分配并 初始化像素缓冲区。
建议应用程序使用与 Foxit PDF SDK 内部相同的颜色来 初始化位图的像素缓冲区:

  • 对于没有 alpha 通道的位图,使用 0xFFFFFFFF 初始化像素缓冲区。
  • 对于有 alpha 通道的位图,使用 0x00000000 初始化像素缓冲区。

此外,加载图像有大小限制。图像大小应满足条件: width * height * (bits per pixel / 8) < 0x40000000(表示 1 GB)。 图像大小是指图像的实际数据大小,而不是图像文件的大小。

参数
[in]width位图的宽度,以像素为单位。这应该大于 0。
[in]height位图的高度,以像素为单位。这应该大于 0。
[in]format位图格式类型。请参考从 FSDK.Bitmap.e_DIBRgb 开始的值, 这应该是这些值之一,但不包括 FSDK.Bitmap.e_DIBInvalid
[in]buffer指定位图数据的缓冲区。
如果它不是 null,此函数将使用参数 buffer 来初始化位图。在这种情况下,请不要在参数 bitmap 的生命周期结束之前释放参数 buffer
如果它是 null,将在内部创建一个新的位图缓冲区。 默认值:null
[in]pitch每个扫描行的字节数。只有当参数 buffer 不为 null 时,此值才有用。如果此值为 0,则假定为 4 字节对齐。默认值:0。

◆ ConvertFormat()

FSDK::Bitmap::ConvertFormat ( format  ,
icc_transform   
)

将位图转换为另一种指定的 DIB 格式。

参数
[in]format新的位图格式类型。它应该是以下值之一:
FSDK.Bitmap.e_DIB8bppMaskFSDK.Bitmap.e_DIB8bppFSDK.Bitmap.e_DIBRgbFSDK.Bitmap.e_DIBRgb32FSDK.Bitmap.e_DIBArgbFSDK.Bitmap.e_DIBRgb565
[in]icc_transform源格式到目标格式的颜色映射上下文。 它可以是 null,表示不使用颜色映射。 默认值:null
返回
转换后的位图。

◆ ConvertToMono()

FSDK::Bitmap::ConvertToMono ( )

将位图转换为 1 位单色格式。

生成的单色位图使用 1 位像素深度格式。

返回
作为单色结果的新位图。
注解
另存为 jpeg 时无法保留 1 位单色格式。

◆ DetectBBoxByColorDiffer()

FSDK::Bitmap::DetectBBoxByColorDiffer ( detection_size  ,
color_differ   
)

根据给定的内容与边距之间的颜色差异检测内容的边界框。

此函数可以支持以下格式:
FSDK.Bitmap.e_DIB8bppMaskFSDK.Bitmap.e_DIB8bppFSDK.Bitmap.e_DIBRgbFSDK.Bitmap.e_DIBRgb32FSDK.Bitmap.e_DIBArgb

参数
[in]detection_size用于分析背景的检测大小。
[in]color_differ用于检测边距的颜色差异。该值应在 0 到 255 之间, 建议值为 64。默认值:64。
返回
内容的边界框矩形。

◆ FillRect()

FSDK::Bitmap::FillRect ( color  ,
rect   
)

使用指定的颜色填充当前位图。

对于 Bitmap::e_DIBCmyk 格式的位图,用户可以填充CMYK颜色值,参数 rect 一定要传 NULL

参数
[in]color用于填充位图的颜色值。格式:0xAARRGGBB
[in]rect表示位图中区域的矩形,用于指定颜色将被填充的位置。 这可以是 null,表示填充整个位图。默认值:null
返回
无。

◆ Flip()

FSDK::Bitmap::Flip ( is_flip_horz  ,
is_flip_vert   
)

翻转位图。

此函数可以支持以下格式:
FSDK.Bitmap.e_DIB8bppMaskFSDK.Bitmap.e_DIB8bppFSDK.Bitmap.e_DIBRgbFSDK.Bitmap.e_DIBRgb32FSDK.Bitmap.e_DIBArgb

参数
[in]is_flip_horz布尔值,指示是否在水平方向翻转位图: true 表示位图将在水平方向翻转, 而 false 表示不翻转。
[in]is_flip_vert布尔值,指示是否在垂直方向翻转位图。 true 表示位图将在垂直方向翻转, 而 false 表示不翻转。
返回
作为翻转结果的新位图。

◆ GetBpp()

FSDK::Bitmap::GetBpp ( )

获取位图每像素位数。

返回
位图每像素位数值。

◆ GetBuffer()

FSDK::Bitmap::GetBuffer ( )

获取位图缓冲区。

位图数据从上到下按扫描行组织。

返回
位图缓冲区。

◆ GetFormat()

FSDK::Bitmap::GetFormat ( )

获取位图格式。

返回
格式值。请参考从 FSDK.Bitmap.e_DIBInvalid 开始的值, 这将是这些值之一。

◆ GetHeight()

FSDK::Bitmap::GetHeight ( )

获取位图高度。

返回
位图高度。

◆ GetMask()

FSDK::Bitmap::GetMask ( clip_rect  )

如果位图有掩码,则获取掩码。

参数
[in]clip_rect当前位图(作为源位图)的裁剪区域。 它可以是 null。默认值:null
返回
作为掩码位图的新位图。如果返回的位图对象的函数 FSDK.Bitmap.IsEmpty 返回值为 true,则表示当前位图没有掩码。

◆ GetPitch()

FSDK::Bitmap::GetPitch ( )

获取位图间距。

返回
位图间距。

◆ GetWidth()

FSDK::Bitmap::GetWidth ( )

获取位图宽度。

返回
位图宽度。

◆ IsEmpty()

FSDK::Bitmap::IsEmpty ( )

检查当前对象是否为空。

当当前对象为空时,表示当前对象无效。

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

◆ StretchTo()

FSDK::Bitmap::StretchTo ( dest_width  ,
dest_height  ,
flag  ,
clip_rect   
)

拉伸到不同大小。

如果参数 dest_width 或参数 dest_height 为负数,位图将被翻转。 如果要在降采样模式下进行拉伸,这将比 不在降采样模式下快得多,特别是将大位图拉伸为小位图时。 可选地,可以指定结果位图坐标中的裁剪区域来限制 结果位图的大小。 此函数不支持以下格式:
FSDK.Bitmap.e_DIBCmyk

参数
[in]dest_width目标位图的宽度。
[in]dest_height目标位图的高度。
[in]flag拉伸标志,它应该是值 FSDK.Bitmap.e_DownsampleFSDK.Bitmap.e_Quadratic
[in]clip_rect目标位图的裁剪区域。它可以是 null。 默认值:null
返回
作为拉伸结果的新位图。

◆ SwapXY()

FSDK::Bitmap::SwapXY ( is_flip_horz  ,
is_flip_vert  ,
clip_rect   
)

交换 X,Y 坐标的位图。交换后,图像也可以同时翻转。

此函数可以支持以下格式:
FSDK.Bitmap.e_DIB8bppMaskFSDK.Bitmap.e_DIB8bppFSDK.Bitmap.e_DIBRgbFSDK.Bitmap.e_DIBRgb32FSDK.Bitmap.e_DIBArgb。 可选地,可以指定裁剪区域(在目标位图坐标中)来 限制结果的大小。
假设原始图像具有以下 4 个像素:

         +---+---+
         | 1 | 2 |
         +---+---+
         | 3 | 4 |
         +---+---+
         

然后,根据参数 is_flip_horzis_flip_vert,结果如下: 如果参数 is_flip_horz = false,参数 is_flip_vert = false

         +---+---+
         | 1 | 3 |
         +---+---+
         | 2 | 4 |
         +---+---+
         

如果参数 is_flip_horz = true,参数 is_flip_vert = false

         +---+---+
         | 3 | 1 |
         +---+---+
         | 4 | 2 |
         +---+---+
         

如果参数 is_flip_horz = false,参数 is_flip_vert = true

         +---+---+
         | 2 | 4 |
         +---+---+
         | 1 | 3 |
         +---+---+
         

如果参数 is_flip_horz = true,参数 is_flip_vert = true

         +---+---+
         | 4 | 2 |
         +---+---+
         | 3 | 1 |
         +---+---+
         
参数
[in]is_flip_horz布尔值,指示是否在水平方向翻转位图: true 表示位图将在水平方向翻转, 而 false 表示不翻转。
[in]is_flip_vert布尔值,指示是否在垂直方向翻转位图: true 表示位图将在垂直方向翻转, 而 false 表示不翻转。
[in]clip_rect目标位图的裁剪区域。这可以是 null, 表示整个位图。默认值:null
返回
作为交换结果的新位图。

◆ TransformTo()

FSDK::Bitmap::TransformTo ( matrix  ,
flag  ,
out_left  ,
out_top  ,
clip_rect   
)

将当前位图(作为源位图)转换为目标位图。

返回位图的尺寸始终与矩阵的尺寸匹配。 如果要在降采样模式下进行转换,这将比 不在降采样模式下快得多,特别是将大图像转换为小图像时。 可选地,可以指定结果位图坐标中的裁剪区域来 限制结果位图的大小。结果位图左上角(在目标坐标中)的位置 也将返回。 此函数不支持以下格式:
FSDK.Bitmap.e_DIBCmyk

参数
[in]matrix转换矩阵。
[in]flag转换标志。它应该是值 FSDK.Bitmap.e_DownsampleFSDK.Bitmap.e_Quadratic
[out]out_left输出参数,接收结果位图左上角的 x 坐标 (在目标坐标中)。
[out]out_top输出参数,接收结果位图左上角的 y 坐标 (在目标坐标中)。
[in]clip_rect目标位图的裁剪区域。它可以是 null。 默认值:null
返回
作为转换结果的新位图。

类成员变量说明

◆ e_DIBInvalid

FSDK::Bitmap::e_DIBInvalid
static

DIB 格式的枚举。

此枚举的值应单独使用。无效的 DIB 格式。

◆ e_Downsample

FSDK::Bitmap::e_Downsample
static

位图插值标志的枚举。

此枚举的值可以单独使用或组合使用。如果设置,缩小或旋转时不进行半色调处理。