10.1 wxWidgets 中图片相关的类
wxWidgets 支持四种和位图相关的类:wxBitmap, wxIcon, wxCursor 和 wxImage。
wxBitmap 是一个平台有关的类,它拥有一个可选的 wxMask 属性以支持透明绘画.在 windows 系统上,wxBitmap 是通过设备无关位图 (DIBs) 实现的,而在 GTK+和 X11 平台上,每个 wxBitmap 则包含一个 GDK 的 pixmap 对象或者 X11 的 pixmap 对象.而在 Mac 平台上,则使用的是 PICT.wxBitmap 可以和 wxImage 进行互相转换。
wxIcon 用来实现各个平台上的图标,一个图标指的是一个小的透明图片,可以用来代表不同的 frame 或者对话框窗口.在 GTK+, X11 和 Mac 平台上,icon 就是一个小的总含有 wxMask 的 wxBitmp,而在 windows 平台上,wxIcon 则是封装了 HICON 对象。
wxCursor 则是一个用来展示鼠标指针的图像,在 GTK+平台上是用的 GdkCursor,X11 和 Mac 平台上用的是各自的 Cursor,而在 windows 平台上则使用的是 HCURSOR.wxCursor 有一个热点的概念(所谓热点指的是图片中用来精确代表指针单击位置的那个点),也总是包含一个遮罩(mask)。
wxImage 则是四个类中唯一的一个平台无关的实现,它支持 24bit 位图以及可选的 alpha 通道.wxImage 可以从 wxBitmap 类使用 wxBitmap::ConvertToImage 函数转换而来,也可以从各种各样的图片文件中加载,它所支持的图片格式也是可以通过图片格式处理器来扩展的.它拥有操作其图片上某些 bit 的能力,因此也可以用来对图片进行一个基本的操作.和 wxBitmap 不同,wxImage 不可以直接被设备上下文 wxDC 使用,如果要在 wxDC 上绘图,需要现将 wxImage 转换成 wxBitmap,然后就可以使用 wxDC 的 DrawBitmap 函数进行绘图了.wxImage 支持设置一个掩码颜色来实现透明的效果,也支持通过 alpha 通道实现非常复杂的透明效果。
你可以在这些图片类型之间进行相互转换,尽管某些转换操作是平台相关的。
注意图片类中大量使用引用记数器,因此对图片类进行赋值和拷贝的操作的系统开销是非常小的,不过这也意味着对一个图片的更改可能会影响到别的图片。
所有的图片类都使用下表列出的标准的 wxBitmapType 标识符来读取或者保存图片数据:
wxBITMAP_TYPE_BMP | Windows 位图文件 (BMP)。 |
---|---|
wxBITMAP_TYPE_BMP_RESOURCE | 从 windows 可执行文件资源部分加载的 Windows 位图。 |
wxBITMAP_TYPE_ICO | Windows 图标文件(ICO)。 |
wxBITMAP_TYPE_ICO_RESOURCE | 从 windows 可执行文件资源部分加载的 Windows 图标。 |
wxBITMAP_TYPE_CUR | Windows 光标文件(CUR)。 |
wxBITMAP_TYPE_CUR_RESOURCE | 从 windows 可执行文件资源部分加载的 Windows 光标。 |
wxBITMAP_TYPE_XBM | Unix 平台上使用的 XBM 单色图片。 |
wxBITMAP_TYPE_XBM_DATA | 从 C++数据中构造的 XBM 单色位图。 |
wxBITMAP_TYPE_XPM | XPM 格式图片,最好的支持跨平台并且支持编译到应用程序中去的格式。 |
wxBITMAP_TYPE_XPM_DATA | 从 C++数据中构造的 XPM 图片。 |
wxBITMAP_TYPE_TIF | TIFF 格式位图,在大图片中使用比较普遍。 |
wxBITMAP_TYPE_GIF | GIF 格式图片,最多支持 256 中颜色,支持透明。 |
wxBITMAP_TYPE_PNG | PNG 位图格式,一个使用广泛的图片格式,支持透明和 alpha 通道,没有版权问题。 |
wxBITMAP_TYPE_JPEG | JPEG 格式位图,一个广泛使用的压缩图片格式,支持大图片,不过它的压缩算法是有损耗压缩,因此不适合对图片进行反复加载和压缩。 |
wxBITMAP_TYPE_PCX | PCX 图片格式。 |
wxBITMAP_TYPE_PICT | Mac PICT 位图。 |
wxBITMAP_TYPE_PICT_RESOURCE | 从可执行文件资源部分加载的 Mac PICT 位图。 |
wxBITMAP_TYPE_ICON_RESOURCE | 仅在 Mac OS X 平台上有效,用来加载一个标准的图标(比如 wxICON_INFORMATION) 或者一个图标资源。 |
wxBITMAP_TYPE_ANI | Windows 动画图标(ANI)。 |
wxBITMAP_TYPE_IFF | IFF 位图文件。 |
wxBITMAP_TYPE_MACCURSOR | Mac 光标文件。 |
wxBITMAP_TYPE_MACCURSOR_RESOURCE | 从可执行文件资源部分加载的 Mac 光标。 |
wxBITMAP_TYPE_ANY | 让加载图片的代码自己确定图片的格式。 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论