Foxit PDF SDK

Public 成员函数 | 静态 Public 属性 | 所有成员列表
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_DIB8bppMask、FSDK.Bitmap.e_DIB8bpp、 FSDK.Bitmap.e_DIBRgb、FSDK.Bitmap.e_DIBRgb32、 FSDK.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，它应该由应用程序初始化； 如果参数 buffer 为 null，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_DIB8bppMask、FSDK.Bitmap.e_DIB8bpp、 FSDK.Bitmap.e_DIBRgb、FSDK.Bitmap.e_DIBRgb32、 FSDK.Bitmap.e_DIBArgb、FSDK.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_DIB8bppMask、FSDK.Bitmap.e_DIB8bpp、 FSDK.Bitmap.e_DIBRgb、FSDK.Bitmap.e_DIBRgb32、 FSDK.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_DIB8bppMask、FSDK.Bitmap.e_DIB8bpp、 FSDK.Bitmap.e_DIBRgb、FSDK.Bitmap.e_DIBRgb32、 FSDK.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_Downsample 或 FSDK.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_DIB8bppMask、FSDK.Bitmap.e_DIB8bpp、 FSDK.Bitmap.e_DIBRgb、FSDK.Bitmap.e_DIBRgb32、 FSDK.Bitmap.e_DIBArgb。 可选地，可以指定裁剪区域（在目标位图坐标中）来 限制结果的大小。
假设原始图像具有以下 4 个像素：

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

然后，根据参数 is_flip_horz 和 is_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_Downsample 或 FSDK.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

位图插值标志的枚举。

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