YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
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)
 取扫描线数据。 更多...
 
HBitmapoperator= (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.h238 行定义.

成员类型定义说明

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

在文件 Image.h241 行定义.

构造及析构函数说明

YSLib::Drawing::HBitmap::HBitmap ( DataPtr  ptr = {})
inline

在文件 Image.h252 行定义.

YSLib::Drawing::HBitmap::HBitmap ( const Size s,
BitPerPixel  bpp = 0 
)
异常
BadImageAlloc分配空间失败。

在文件 Image.cpp254 行定义.

参考 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.")

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

异常
LoggedEvent转换失败。

自从
build 471

在文件 Image.cpp271 行定义.

YSLib::Drawing::HBitmap::HBitmap ( const char *  filename,
ImageDecoderFlags  flags = ImageDecoderFlags::Default 
)
异常
LoggedEvent读取失败。
自从
build 457

在文件 Image.cpp274 行定义.

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

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

在文件 Image.cpp277 行定义.

参考 bitmap.

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

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

异常
UnknownImageFormat未知图像格式。

在文件 Image.cpp283 行定义.

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

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

在文件 Image.cpp286 行定义.

参考 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.h301 行定义.

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.h311 行定义.

YSLib::Drawing::HBitmap::HBitmap ( const ImageMemory mem,
ImageDecoderFlags  flags = ImageDecoderFlags::Default 
)
异常
LoggedEvent读取失败。
自从
build 457

在文件 Image.cpp293 行定义.

参考 bitmap.

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

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

异常
UnsupportedImageFormat指定的色深对指定图形不被支持。
LoggedEvent转换失败(包括色深被支持但具体格式不被实现支持的情形)。
注解
对于 16 位位图使用 RGB555 。对于 32 位位图使用 RGBA8888 。
自从
build 471

在文件 Image.cpp300 行定义.

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

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

自从
build 417
异常
LoggedEvent缩放失败。
自从
build 430

在文件 Image.cpp322 行定义.

参考 bitmap.

YSLib::Drawing::HBitmap::HBitmap ( const HBitmap pixmap)
异常
BadImageAlloc分配空间失败。

在文件 Image.cpp329 行定义.

参考 bitmap.

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

在文件 Image.cpp335 行定义.

YSLib::Drawing::HBitmap::~HBitmap ( )
自从
build 461

在文件 Image.cpp340 行定义.

参考 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.cpp364 行定义.

参考 bitmap.

SDst YSLib::Drawing::HBitmap::GetPitch ( ) const
自从
build 417

在文件 Image.cpp374 行定义.

参考 bitmap.

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

取像素数据。

返回
若数据指针为空则为空指针,否则为像素数据起始非空指针。
注解
像素数据由连续的扫面线数据构成,数量等于高度值。
自从
build 471

在文件 Image.cpp379 行定义.

参考 bitmap.

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

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

自从
build 430

在文件 Image.h348 行定义.

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.cpp396 行定义.

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

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

在文件 Image.cpp402 行定义.

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.h436 行定义.

友元及相关函数文档

#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.h244 行定义.

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

void YSLib::Drawing::HBitmap::Rescale

取扫描线数据。

前置条件
间接断言:参数值小于高。
返回
若数据指针为空则为空指针,否则为扫描线数据起始非空指针。
注解
使用 operator[] 实现。
参见
operator[]
自从
build 471

缩放为指定大小。

自从
build 430

在文件 Image.h414 行定义.


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