返回介绍

10.1 wxWidgets 中图片相关的类

发布于 2025-03-08 15:26:47 字数 2987 浏览 0 评论 0 收藏 0

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_BMPWindows 位图文件 (BMP)。
wxBITMAP_TYPE_BMP_RESOURCE从 windows 可执行文件资源部分加载的 Windows 位图。
wxBITMAP_TYPE_ICOWindows 图标文件(ICO)。
wxBITMAP_TYPE_ICO_RESOURCE从 windows 可执行文件资源部分加载的 Windows 图标。
wxBITMAP_TYPE_CURWindows 光标文件(CUR)。
wxBITMAP_TYPE_CUR_RESOURCE从 windows 可执行文件资源部分加载的 Windows 光标。
wxBITMAP_TYPE_XBMUnix 平台上使用的 XBM 单色图片。
wxBITMAP_TYPE_XBM_DATA从 C++数据中构造的 XBM 单色位图。
wxBITMAP_TYPE_XPMXPM 格式图片,最好的支持跨平台并且支持编译到应用程序中去的格式。
wxBITMAP_TYPE_XPM_DATA从 C++数据中构造的 XPM 图片。
wxBITMAP_TYPE_TIFTIFF 格式位图,在大图片中使用比较普遍。
wxBITMAP_TYPE_GIFGIF 格式图片,最多支持 256 中颜色,支持透明。
wxBITMAP_TYPE_PNGPNG 位图格式,一个使用广泛的图片格式,支持透明和 alpha 通道,没有版权问题。
wxBITMAP_TYPE_JPEGJPEG 格式位图,一个广泛使用的压缩图片格式,支持大图片,不过它的压缩算法是有损耗压缩,因此不适合对图片进行反复加载和压缩。
wxBITMAP_TYPE_PCXPCX 图片格式。
wxBITMAP_TYPE_PICTMac PICT 位图。
wxBITMAP_TYPE_PICT_RESOURCE从可执行文件资源部分加载的 Mac PICT 位图。
wxBITMAP_TYPE_ICON_RESOURCE仅在 Mac OS X 平台上有效,用来加载一个标准的图标(比如 wxICON_INFORMATION) 或者一个图标资源。
wxBITMAP_TYPE_ANIWindows 动画图标(ANI)。
wxBITMAP_TYPE_IFFIFF 位图文件。
wxBITMAP_TYPE_MACCURSORMac 光标文件。
wxBITMAP_TYPE_MACCURSOR_RESOURCE从可执行文件资源部分加载的 Mac 光标。
wxBITMAP_TYPE_ANY让加载图片的代码自己确定图片的格式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文