使用wxWidgets从资源文件中静态装载图像

wxWidgets:wxMemoryFSHandler类用法 wxWidgets:wxMemoryFSHandler类用法wxWidgets:wxMemoryFSHandler类用法用法详细说明 wxWidgets:wxMemoryFSHandler类用法 用法详细说明 #include <wx/fs_mem.h> wxMemoryFSHandler的继承图 这个wxFileSystem处理程序可以在内存流中存储任意数据,并通过 URL 访问它们。 它特别适合存储来自资源或包含的 XPM 文件的位图,以便它们可以与 wxHTML 或wxWebView一起 阅读详情
    在wxWidgets中装载图像是非常容易的,但是如果将图像文件和可执行文件放到一起,在发布时只需要发布可执行文件,要实现这种功能,一般可以使用资源文件来解决。在windows下的资源文件的源文件是*.rc,编译后叫*.res。在linux下类似,源文件为*.xrc,编译后叫*.xres。但它们是xml格式的,要装载这种资源文件也得动态进行装载。相当于配置文件。

    如果想将其直接编译进可执行文件。需要一个工具wxrc。这个工作在wxWidgets中的untils目录中,可自己编译。可使用这个工具将*.xrc生成c++代码,如果是图像,就将其转换成字符数组。然后和其它程序一起进行编译。可使用wxrc -c main.xrc -v -o main.h

main.xrc的格式如下:
<?xml version="1.0"?> <resource version="2.3.0.1">    
<object class="wxBitmap" name="background">background.jpg</object>
</resource>

生成的main.h的格式如下:
//
// This file was automatically generated by wxrc, do not edit by hand.
//

#include <wx/wxprec.h>

#ifdef __BORLANDC__
#pragma hdrstop
#endif

#include <wx/filesys.h>
#include <wx/fs_mem.h>
#include <wx/xrc/xmlres.h>
#include <wx/xrc/xh_all.h>

static size_t xml_res_size_0 = 55966;
static unsigned char xml_res_file_0[] = {
255,216,255,224,0,16,74,70,73,70,0,1,2,0,0,100,0,100,0,0,255,236,0,17,68,
117,99,107,121,0,1,0,4,0,0,0,60,0,0,255,238,0,14,65,100,111,98,101,0,100,
192,0,0,0,1,255,219,0,132,0,6,4,4,4,5,4,6,5,5,6,9,6,5,6,9,11,8,6,6,8,11,
12,10,10,11,10,10,12,16,12,12,12,12,12,12,16,12,14,15,16,15,14,12,19,19,
20,20,19,19,28,27,27,27,28,31,31,31,31,31,31,31,31,31,31,1,7,7,7,13,12,
13,24,16,16,24,26,21,17,21,26,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
31,31,31,31,31,31,31,31,31,31,31,255,192,0,17,8,2,201,3,248,3,1,17,0,2,
.......
.......
102,222,191,202,130,94,195,45,21,39,169,149,113,241,11,45,173,84,25,120,
94,18,190,190,196,107,2,216,129,52,90,4,128,1,130,160,201,16,36,0,147,0,
84,68,164,164,47,80,44,0,96,168,202,0,201,145,130,178,49,229,32,127,255,
217};

static size_t xml_res_size_1 = 161;
static unsigned char xml_res_file_1[] = {
60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
115,111,117,114,99,101,32,118,101,114,115,105,111,110,61,34,50,46,51,46,
48,46,49,34,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,97,99,107,
103,114,111,117,110,100,34,62,114,101,115,111,117,114,99,101,115,46,104,
36,98,97,99,107,103,114,111,117,110,100,46,106,112,103,60,47,111,98,106,
101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10};

void InitXmlResource()
{

// Check for memory FS. If not present, load the handler:
{
wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
wxFileSystem fsys;
wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
if (f) delete f;
else wxFileSystem::AddHandler(new wxMemoryFSHandler);
}

wxMemoryFSHandler::AddFile(wxT("XRC_resource/resources.h$background.jpg"), xml_res_file_0, xml_res_size_0);
wxMemoryFSHandler::AddFile(wxT("XRC_resource/resources.h$main.xrc"), xml_res_file_1, xml_res_size_1);
wxXmlResource::Get()->Load(wxT("memory:XRC_resource/resources.h$main.xrc"));
}
其后在主程序中调用 InitXmlResource函数。

要想装载这个background.jpg图,使用以下语句:
    wxXmlResource::Get()->InitAllHandlers();     
wxBitmap background = wxXmlResource::Get()->LoadBitmap(_T("background"));
m_pStaticBitmap = new wxStaticBitmap(this, wxID_ANY, background, wxPoint(0, 0), wxSize(1024, 768));
但要注意使用wxStaticBitmap时应在wxFrame中的OnSize中加入
    m_pStaticBitmap->Refresh();
否则在windows下当窗口缩小后再放大时,图像显示有一些问题。但在linux下可以不加这条语句。

   
wxWidgets:学习使用wxImage类 wxWidgets:学习使用wxImage类wxWidgets是一个开源的C++ GUI框架,它提供了一套跨平台的API来创建图形用户界面。wxImage是wxWidgets中一个用于图片处理的类,它可以加载、保存和操作多种不同格式的图片文件。在本文中,我们将深入探讨wxImage类的用法。首先,我们需要包含头文件。 阅读详情

相关推荐

wxWidgets XRC 文件的使用方法及教程

使用 wxWidgets 中的 XRC 文件可以方便地管理界面资源并实现可视化布局。以上介绍了如何创建 XRC 文件、加载文件、以及在代码中使用 XRC 控件。如果您想要进一步了解 wxWidgets 和 XRC 文件,请查看官方文档和示例代码。

CodeMaven的博客 808

学习wxWidgets第3篇:PNG等格式图像的二种调用方式

本人习惯使用的两种方式: 一是把图像作为资源文件,直接编译到exe文件中使用,对小的应用来说,不拖家带口了。 二是从盘中调用,大的应用程序使用较多。 本文也简单介绍这种两方式在wxwidgets中的使用。 第一种方式:在codeblocks中建一个资源文件,后缀名为.rc 直接在Codeblocks中编辑这个资源文件,这里要注意: 程序自动按字母顺序排序,第1个是作用应用标题栏上的图标使用,即应用程序的图标。rc资源文件的格式如下,PNG图像对应的是RCDATA标记,必须大写。资源文件中必须加

net990的专栏 1617

基于Python的高考志愿辅助填报系统

在实际应用中,系统需要处理更复杂的数据,包括更多的高校和专业信息、更详细的录取规则、以及用户的历史选择等。系统需要提供用户友好的界面,让考生输入自己的信息和偏好,然后通过后端的模型计算出推荐的志愿列表。此外,系统还应该提供一些个性化的服务,如根据考生的输入动态调整推荐策略、保存用户的填报历史和偏好等。特征可能包括考生的分数、所在省份、文理科类别、专业偏好、高校的地理位置、排名、专业的就业前景等。3. **推荐逻辑**:根据用户的分数和专业偏好,结合历史录取数据,使用简单的算法来推荐可能录取的高校和专业。

coder_wwwdy的博客 1976

wxWidgets对资源文件的引用

在Windows下的资源文件为*.rc, 其中定义了程序要使用的资源名称和资源文件名。在Linux下我们使用的资源文件为*

h19861104的专栏 3998

(超详细)互补格雷码+相移码求解包裹相位(Python实现)

记录实现“互补格雷码+相移码”求解包裹相位的编码过程。也可以叫它“5+4”法,5代表五幅格雷码图像,4代表四步相移法的四张正弦条纹图。

暴雨梨花博客 3万+

蚁群算法(Ant Colony Optimization,ACO)讲解+代码实现

通常情况下,较优的解对应的路径上的信息素会被加强,而较差解对应的信息素则会减少或蒸发。的化学物质,这种物质会在蚂蚁走过的路径上留下痕迹,后续的蚂蚁会根据这些信息素的浓度来选择路径,从而形成一条从蚁巢到食物源的。在求解TSP蚁群算法中,每只蚂蚁相互独立,用于构造不同的路线,蚂蚁之间通过信息素进行交流,合作求解。的过程,该路段经过的蚂蚁越多,信息素留下的就越多,浓度越高,更多的蚂蚁都会选择这个路段。需要注意的是,蚁群算法是一种。(6)计算每只蚂蚁的总距离:遍历每只蚂蚁的路线,累加经过的城市之间的距离。

m0_73804764的博客 1万+

Bitmap加载方式

Bitmap

Ice_Lemon_dc的博客 1501

视觉媒体通信作业记录(六)端到端的视频传输系统

将采集、编码、传输、显示各模块连接起来,形成一个端到端的视频通信系统,开发一个特色模块,将其加入系统;

weixin_45774698的博客 1967

使用wxWidgets for C++从资源文件中静态装载图像

使用wxWidgets for C++从资源文件中静态装载图像 本文为原创,如需转载,请注明作者和出处,谢谢!李宁的极客世界 在wxWidgets中装载图像是非常容易的,但是如果将图像文件和可执行文件放到一起,在发布时只需要发布可执行文件,要实现这种功能,一般可以使用资 源文件来解决。在windows下的资源文件的源文件是*.rc,编译后叫*.res。在linux下类似,源文件为*.x...

liufengl138的专栏 457

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8425

OData Request:Create Entity 在 ABAP OData Client Proxy 中的工程化实践

文章摘要 本文针对具备 SAP Gateway 与 ABAP 开发经验的读者,详细讲解如何通过 ABAP OData Client Proxy 实现 OData 服务的 Create 操作。首先对比了 OData V2 与 V4 的 Create 规范差异,强调键、集合 URL 和请求体的标准化要求。随后介绍了 ABAP Client Proxy 的编程模型,包括 Client Proxy、Entity List Resource 和 Create Request/Response 三个核心对象,并提供了完

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 247

使用wxWidgets for C++ 从资源文件中静态装载图像

在wxWidgets中装载图像是非常容易的,但是如果将图像文件和可执行文件放到一起,在发布时只需要发布可执行文件,要实现这种功能,一般可以使用资源文件来解决。在windows下的资源文件的源文件是*.rc,编译后叫*.res。在linux下类似,源文件为*.xrc,编译后叫*.xres。但它们是xml格式的,要装载这种资源文件也得动态进行装载。相当于配置文件。     如果想将其直接编译进可执行文件。需要一个工具wxrc。这个工作在wxWidgets中的untils目录中,可自己编译。可使用这个工具将*

吴亮与你共同进步 989

生物量预测:基于Swin-Unet模型的生物量模型预测

本文提出了一种基于Swin-Unet架构的多源遥感地上生物量(AGB)预测方法。该方法整合了光学影像、SAR雷达影像、气候环境参数以及地形数据(坡度和坡向)等多源信息,通过24个输入通道(13+2+7+1+1)构建预测模型。研究采用Min-Max归一化预处理数据,并使用80%训练集、16%验证集和20%测试集的划分策略。模型基于Swin-Unet 2D架构,设置64个初始滤波器、4层深度、4×4堆叠数和2×2补丁大小。该方法通过整合多源遥感数据和先进深度学习架构,为AGB反演提供了新的解决方案。

此星光明博客 61

wxWidgets for C++从资源文件中静态装载图像

在wxWidgets中装载图像是非常容易的,但是如果将图像文件和可执行文件放到一起,在发布时只需要发布可执行文件,要实现这种功能,一般可以使用资源文件来解决。在windows下的资源文件的源文件是*.rc,编译后叫*.res。在linux下类似,源文件为*.xrc,编译后叫*.xres。但它们是xml格式的,要装载这种资源文件也得动态进行装载。相当于配置文件。如果想将其直接编译进可执行文件。需要一

在水一方 1189

数仓建模—维度建模之维度表

首先要学会识别维度,维度是相对稳定的、可抽象具有共性的、固有的(天然的)描述度量或事实的上下文属性信息,失去维度信息的度量信息是没有意义的或者说是失去维度信息的事实表是没有意义的。其次要掌握维度表的设计原则和设计流程,从而更加科学的设计维度表,其实这些东西都是术,我们一直都说一句话大道至简,其实如果你掌握了精髓,抛开这些术也可以做到得心应手,这就像张无忌练太极剑一样,忘记了才能达到道的境界,也就是无我,如果做不到就记住这些原则加以应用从而达到术的境界。

2401_84052244的博客 4361

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

跨平台wxWidgets在windows及linux上的开发环境搭建

在项目中,因为要跨平台的服务器端,所以要找寻一套跨平台的通讯、线程、系统环境的开源库,最后定位于wxWidgets,它的官网于 http://www.wxwidgets.org,具体的功能大家自己慢慢探索,现将基于windows和linux上的开发环境介绍给大家。一、WINDOWS1. 安装Visual Studio 2008   1) 用DAEMON Tools mount P:"Sof

虫洞行者的专栏 873

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

wxWidgets中添加图片资源

wxWidgets中添加图片资源 在wxWidgets中添加图片资源,首先要在image中创建图片类型的Handler,然后才可以. 比如我用的图片资源名字是"222.jpg" 截取代码如下: wxImage::AddHandler(new wxJPEGHandler);//添加对jpg图片读取的handelwxBitmap pic(wx...

weixin_30568591的博客 1171

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

wxWidgets的资源读取

 快乐虾http://blog.youkuaiyun.com/lights_joy/lights@hb165.com  本文适用于wxWidgets-2.8.8vs2008Windows XP  欢迎转载,但请保留作者信息 在VC下使用资源,通常都是先在resource.h中定义一个整数,比如:#define IDI_LIGHTNING_R         

嵌云阁 3106

wxWidgets控件上显示图像

wxWidgets 控件上显示图像 目的:codeblock工作环境,在wxWidgets的指定控件位置上显示图像。 工作环境:CodeBlock17.12, wxWidgets3.0.4 关键步骤简述: 1st:wxImage::LoadFile(); 2nd: wxBitmap m_bmp4Show = wxBitmap( m_wxImage );//将wxImage转为wxBitmap ...

qq_23313467的博客 2056
上一篇: 得到第K个大的数
下一篇: 12个.net 开发者值得去读的国外Blog
atomic_age
博客等级 码龄21年 14粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值