YSTest: YSLib::Drawing::HBitmap类 参考

YSTest PreAlpha_b500_20140530 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
Public 类型 | Public 成员函数 | Private 属性 | 相关函数 | 所有成员列表
YSLib::Drawing::HBitmap类 参考final

位图句柄：指向位图数据。 更多...

`#include <Image.h>`

YSLib::Drawing::HBitmap 的协作图:
[图例]

## Public 类型

using | DataPtr = ::FIBITMAP *

## Public 成员函数

| HBitmap (DataPtr ptr={}) ynothrow
| HBitmap (const Size &, BitPerPixel=0)
| HBitmap (BitmapPtr, const Size &, size_t=0)
| 构造：从矩形像素图缓冲区按指定大小和扫描线跨距增量复制并转换图像数据。 更多...
| HBitmap (const CompactPixmap &)

构造：从标准矩形像素图缓冲区复制并转换图像数据。

异常

  LoggedEvent | 转换失败。

更多...

| HBitmap (const ImageMemory &, ImageDecoderFlags=ImageDecoderFlags::Default)
| HBitmap (const HBitmap &, BitPerPixel)
| 构造指定图像转换为指定色深的基于 RGB 像素格式的位图副本。 更多...
| HBitmap (const char *, ImageDecoderFlags=ImageDecoderFlags::Default)
| HBitmap (const char *, ImageFormat, ImageDecoderFlags=ImageDecoderFlags::Default)
| 构造：使用指定 UTF-8 文件名、指定格式和解码器标识。 更多...
| HBitmap (const char16_t *, ImageDecoderFlags=ImageDecoderFlags::Default)
| 构造：使用指定 UCS-2 文件名和解码器标识。 更多...
| HBitmap (const char16_t *, ImageFormat, ImageDecoderFlags=ImageDecoderFlags::Default)
| 构造：使用指定 UCS-2 文件名、指定格式和解码器标识。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
| HBitmap (const _tString &filename, ImageDecoderFlags=ImageDecoderFlags::Default)
| 构造：使用指定字符串文件名和解码器标识。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
| HBitmap (const _tString &filename, ImageFormat fmt, ImageDecoderFlags=ImageDecoderFlags::Default)
| 构造：使用指定字符串文件名和解码器标识。 更多...
| HBitmap (const HBitmap &, const Size &, SamplingFilter)
| 构造指定图像缩放至指定大小的副本。 更多...
| HBitmap (const HBitmap &)
| HBitmap (HBitmap &&) ynothrow
| ~HBitmap ()

## Private 属性

DataPtr | bitmap

## 相关函数

(请注意: 这些不是成员函数.)
#define | DefSwap(_q, _t)
| 多页面位图数据。 更多...
PDefH(byte *, GetScanLine, size_t idx) const ynothrow ImplRet(bitmap?(*this) | Rescale [idx] void(const Size &, SamplingFilter=SamplingFilter::Box)
| 取扫描线数据。 更多...
HBitmap & | operator= (HBitmap pixmap) ynothrow
| 统一赋值：使用值参数和交换函数进行复制或转移赋值。 更多...
| PDefHOp (bool,!,) const ynothrow ImplRet(!bitmap) byte *operator[](size_t) const ynothrow
| 取扫描线数据。 更多...
| DefCvt (const ynothrow, bool, bitmap) operator CompactPixmap() const
| 转换为标准矩形像素图缓冲区。 更多...
BitPerPixel | GetBPP () const ynothrow
| DefGetter (const ynothrow, DataPtr, DataPtr, bitmap) SDst GetHeight() const ynothrow
| DefGetter (const ynothrow, Size, Size,{GetWidth(), GetHeight()})
SDst | GetPitch () const ynothrow
byte * | GetPixels () const ynothrow
| 取像素数据。 更多...
bool | SaveTo (const char *, ImageFormat=ImageFormat::BMP, ImageDecoderFlags=ImageDecoderFlags::Default) const ynothrow
| \ brief 保存：使用指定 UTF-8 文件名、格式和解码器标识。 更多...
bool | SaveTo (const char16_t *, ImageFormat=ImageFormat::BMP, ImageDecoderFlags=ImageDecoderFlags::Default) const ynothrow
| \ brief 保存：使用指定 UTF-16 文件名、格式和解码器标识。 更多...
template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >
bool | SaveTo (const _tString &filename, ImageFormat fmt=ImageFormat::BMP, ImageDecoderFlags flags=ImageDecoderFlags::Default) const
| 保存：使用指定字符串文件名、格式和解码器标识。 更多...

## 详细描述

位图句柄：指向位图数据。

注解
  内部数据的平凡容器：深复制且可转移。

自从
  build 418

在文件 Image.h 第 238 行定义.

## 成员类型定义说明

using YSLib::Drawing::HBitmap::DataPtr = ::FIBITMAP*

在文件 Image.h 第 241 行定义.

## 构造及析构函数说明

YSLib::Drawing::HBitmap::HBitmap | ( | DataPtr | ptr = `{}` | ) |

inline

在文件 Image.h 第 252 行定义.

YSLib::Drawing::HBitmap::HBitmap | ( | const Size & | s,
|  | BitPerPixel | bpp = `0`
| ) |  |

异常

  BadImageAlloc | 分配空间失败。

在文件 Image.cpp 第 254 行定义.

参考 bitmap.

YSLib::Drawing::HBitmap::HBitmap | ( | BitmapPtr | ,
|  | const Size & | ,
|  | size_t | = `0`
| ) |  |

explicit

构造：从矩形像素图缓冲区按指定大小和扫描线跨距增量复制并转换图像数据。

前置条件
  断言：输入指针非空。

异常

  LoggedEvent | 转换失败。

注解
  扫描线跨距的单位为字节， 等于图像的宽乘以每像素字节数与输入的扫描线跨距增量之和。

自从
  build 471

YSLib::Drawing::HBitmap::HBitmap | ( | const CompactPixmap & | buf | ) |

初始值:
{
if(!bitmap)
throw LoggedEvent("Converting compact pixmap failed.")
YSLib::Drawing::HBitmap::bitmap
DataPtr bitmap
Definition: Image.h:244

构造：从标准矩形像素图缓冲区复制并转换图像数据。

异常

  LoggedEvent | 转换失败。

自从
  build 471

在文件 Image.cpp 第 271 行定义.

YSLib::Drawing::HBitmap::HBitmap | ( | const char * | filename,
|  | ImageDecoderFlags | flags = `ImageDecoderFlags::Default`
| ) |  |

异常

  LoggedEvent | 读取失败。

自从
  build 457

在文件 Image.cpp 第 274 行定义.

YSLib::Drawing::HBitmap::HBitmap | ( | const char * | filename,
|  | ImageFormat | fmt,
|  | ImageDecoderFlags | flags = `ImageDecoderFlags::Default`
| ) |  |

构造：使用指定 UTF-8 文件名、指定格式和解码器标识。

在文件 Image.cpp 第 277 行定义.

参考 bitmap.

YSLib::Drawing::HBitmap::HBitmap | ( | const char16_t * | filename,
|  | ImageDecoderFlags | flags = `ImageDecoderFlags::Default`
| ) |  |

构造：使用指定 UCS-2 文件名和解码器标识。

异常

  UnknownImageFormat | 未知图像格式。

在文件 Image.cpp 第 283 行定义.

YSLib::Drawing::HBitmap::HBitmap | ( | const char16_t * | filename,
|  | ImageFormat | fmt,
|  | ImageDecoderFlags | flags = `ImageDecoderFlags::Default`
| ) |  |

构造：使用指定 UCS-2 文件名、指定格式和解码器标识。

在文件 Image.cpp 第 286 行定义.

参考 bitmap.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

YSLib::Drawing::HBitmap::HBitmap | ( | const _tString & | filename,
|  | ImageDecoderFlags | = `ImageDecoderFlags::Default`
| ) |  |

inline

构造：使用指定字符串文件名和解码器标识。

异常

  UnknownImageFormat | 未知图像格式。

自从
  build 483

在文件 Image.h 第 301 行定义.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

YSLib::Drawing::HBitmap::HBitmap | ( | const _tString & | filename,
|  | ImageFormat | fmt,
|  | ImageDecoderFlags | = `ImageDecoderFlags::Default`
| ) |  |

inline

构造：使用指定字符串文件名和解码器标识。

自从
  build 483

在文件 Image.h 第 311 行定义.

YSLib::Drawing::HBitmap::HBitmap | ( | const ImageMemory & | mem,
|  | ImageDecoderFlags | flags = `ImageDecoderFlags::Default`
| ) |  |

异常

  LoggedEvent | 读取失败。

自从
  build 457

在文件 Image.cpp 第 293 行定义.

参考 bitmap.

YSLib::Drawing::HBitmap::HBitmap | ( | const HBitmap & | pixmap,
|  | BitPerPixel | bpp
| ) |  |

构造指定图像转换为指定色深的基于 RGB 像素格式的位图副本。

异常

  UnsupportedImageFormat | 指定的色深对指定图形不被支持。
  LoggedEvent | 转换失败（包括色深被支持但具体格式不被实现支持的情形）。

注解
  对于 16 位位图使用 RGB555 。对于 32 位位图使用 RGBA8888 。

自从
  build 471

在文件 Image.cpp 第 300 行定义.

YSLib::Drawing::HBitmap::HBitmap | ( | const HBitmap & | pixmap,
|  | const Size & | s,
|  | SamplingFilter | sf
| ) |  |

构造指定图像缩放至指定大小的副本。

自从
  build 417

异常

  LoggedEvent | 缩放失败。

自从
  build 430

在文件 Image.cpp 第 322 行定义.

参考 bitmap.

YSLib::Drawing::HBitmap::HBitmap | ( | const HBitmap & | pixmap | ) |

异常

  BadImageAlloc | 分配空间失败。

在文件 Image.cpp 第 329 行定义.

参考 bitmap.

YSLib::Drawing::HBitmap::HBitmap | ( | HBitmap && | pixmap | ) |

在文件 Image.cpp 第 335 行定义.

YSLib::Drawing::HBitmap::~HBitmap | ( |  | ) |

自从
  build 461

在文件 Image.cpp 第 340 行定义.

参考 bitmap.

## 成员函数说明

YSLib::Drawing::HBitmap::DefCvt | ( | const ynothrow | ,
|  | bool | ,
|  | bitmap |
| ) |  | const

explicit

转换为标准矩形像素图缓冲区。

自从
  build 471

YSLib::Drawing::HBitmap::DefGetter | ( | const ynothrow | ,
|  | DataPtr | ,
|  | DataPtr | ,
|  | bitmap |
| ) |  | const

自从
  build 417

YSLib::Drawing::HBitmap::DefGetter | ( | const ynothrow | ,
|  | Size | ,
|  | Size | ,
|  | {GetWidth(), GetHeight()} |
| ) |  |

自从
  build 417

BitPerPixel YSLib::Drawing::HBitmap::GetBPP | ( |  | ) | const

在文件 Image.cpp 第 364 行定义.

参考 bitmap.

SDst YSLib::Drawing::HBitmap::GetPitch | ( |  | ) | const

自从
  build 417

在文件 Image.cpp 第 374 行定义.

参考 bitmap.

byte * YSLib::Drawing::HBitmap::GetPixels | ( |  | ) | const

取像素数据。

返回
  若数据指针为空则为空指针，否则为像素数据起始非空指针。

注解
  像素数据由连续的扫面线数据构成，数量等于高度值。

自从
  build 471

在文件 Image.cpp 第 379 行定义.

参考 bitmap.

HBitmap& YSLib::Drawing::HBitmap::operator= | ( | HBitmap | pixmap | ) |

inline

统一赋值：使用值参数和交换函数进行复制或转移赋值。

自从
  build 430

在文件 Image.h 第 348 行定义.

YSLib::Drawing::HBitmap::PDefHOp | ( | bool | ,
|  | ! |
| ) |  | const

取扫描线数据。

前置条件
  断言： `bitmap` 。
  断言： 参数值小于高。

返回
  扫描线数据的起始指针。

注解
  扫描线宽为跨距。

自从
  build 471

bool YSLib::Drawing::HBitmap::SaveTo | ( | const char * | filename,
|  | ImageFormat | fmt = `ImageFormat::BMP`,
|  | ImageDecoderFlags | flags = `ImageDecoderFlags::Default`
| ) |  | const

\ brief 保存：使用指定 UTF-8 文件名、格式和解码器标识。

返回
  是否保存成功。

自从
  build 471 。

在文件 Image.cpp 第 396 行定义.

bool YSLib::Drawing::HBitmap::SaveTo | ( | const char16_t * | filename,
|  | ImageFormat | fmt = `ImageFormat::BMP`,
|  | ImageDecoderFlags | flags = `ImageDecoderFlags::Default`
| ) |  | const

\ brief 保存：使用指定 UTF-16 文件名、格式和解码器标识。

在文件 Image.cpp 第 402 行定义.

template<class _tString , yimpl(typename=ystdex::enable_for_string_class_t< _tString >) >

bool YSLib::Drawing::HBitmap::SaveTo | ( | const _tString & | filename,
|  | ImageFormat | fmt = `ImageFormat::BMP`,
|  | ImageDecoderFlags | flags = `ImageDecoderFlags::Default`
| ) |  | const

inline

保存：使用指定字符串文件名、格式和解码器标识。

自从
  build 483

在文件 Image.h 第 436 行定义.

## 友元及相关函数文档

#define DefSwap | ( |  | _q,
|  |  | _t
| ) |  |

related

值:
PDefH(void, swap, _t& _x, _t& _y) _q \
ImplExpr(_x.swap(_y))

多页面位图数据。

自从
  build 430
  build 456

注解
  非公开实现。

## 类成员变量说明

DataPtr YSLib::Drawing::HBitmap::bitmap

private

在文件 Image.h 第 244 行定义.

参考自 GetBPP(), GetPitch(), GetPixels(), HBitmap() , 以及 ~HBitmap().

void YSLib::Drawing::HBitmap::Rescale

取扫描线数据。

前置条件
  间接断言：参数值小于高。

返回
  若数据指针为空则为空指针，否则为扫描线数据起始非空指针。

注解
  使用 `operator[]` 实现。

参见
  operator[]

自从
  build 471

缩放为指定大小。

自从
  build 430

在文件 Image.h 第 414 行定义.

该类的文档由以下文件生成:

- Image.h
- Image.cpp