`
yarin
  • 浏览: 176591 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

使用BinCompiler将资源文件打包成二进制文件

    博客分类:
  • J2ME
阅读更多

版权申明:http://yarin.iteye.com/blog/453262  

 

在开发游戏时,总是要使用很多的资源文件,比如:图片、音乐等。而我们经常会遇到一些商业游戏中都看不到这些资源文件,那是因为商业游戏,一般都会将这些资源文件打包成二进制的文件,然后在程序中读取,并使用。这样的游戏看上去更显得专业一些,本文我们就来学习一个最简单的将资源文件打包成二进制文件的方法——使用BinCompiler将资源文件打包成二进制文件。

 

所需工具:BinCompiler(见附件)

 

运行“BinCompiler.exe”,指定要打包的资源文件的路径,和输出二进制文件的路径,如下图所示。



  

点击create按钮,即在我们制定的位置产生一个bin文件,当然在这个bin文件所在目录还会产生一个index.txt文件。我们在程序中读取这些资源时,需要使用这个index.txt。index.txt文件如下所示:

FName	Index	Pos	Size
A_04.png	0	0	4141
A_03.png	1	4145	3802
A_02.png	2	7951	3813
A_01.png	3	11768	3959

接下来我们可以使用BinReader.java文件中的两个方法来读取这些资源文件了。

代码清单:BinReader.java

/*******************************************************************************
 * Reads a file from the BIN file and return data as a byte buffer
 *******************************************************************************/
public byte[] readFile(String binfile, int pos)
{
	byte buffer[];
	int len;

	try {

		InputStream is = Class.getClass().getResourceAsStream("/" + binfile);

		is.skip(pos);

		len  = (is.read() & 0xFF) << 24;
		len  |= (is.read() 0xFF) << 16;
		len  |= (is.read() & 0xFF) << 8;
		len  |= (is.read() & 0xFF);

		buffer = new byte[len];
	
		is.read(buffer, 0, buffer.length);

		is.close();
		is = null;
	
		System.gc();
	} catch (Exception e) {
		buffer = null;
		e.printStackTrace();
		System.gc();
		return null;
	}

	return buffer;
}

/*******************************************************************************
 * Reads a file from the BIN file and return data as an Image
 *******************************************************************************/
public Image readImage(String binfile, long pos)
{
	byte buffer[];
	long len;

	try {
		InputStream is = Class.getClass().getResourceAsStream("/" + binfile);
		
		is.skip(pos);
		
		len  = (is.read() & 0xFF) << 24;
		len  |= (is.read() 0xFF) << 16;
		len  |= (is.read() & 0xFF) << 8;
		len  |= (is.read() & 0xFF);

		buffer = new byte[len];
	
		is.read(buffer, 0, buffer.length);

		is.close();
		is = null;
	
		System.gc();
	} catch (Exception e) {
		buffer = null;
		e.printStackTrace();
		System.gc();
		return null;
	}

	return Image.createImage(buffer, 0, buffer.length);
}

可以看出,这两个方法都只需要传入bin文件名和图片对应的pos,pos值就在我们上面所说的index.txt文件中去找对应的就可以了。 

例如我们读取一个图片

Image image = readimage("images.bin", 0);

可以看出,我们传入的pos的值是0,对应index.txt中就应该是A_04.png。 

很简单,可以直接使用就是了。谢谢大家支持。

  • 大小: 54.9 KB
分享到:
评论
3 楼 JACKDG2010 2012-04-27  
  楼主,android没有image这个类咋办???
2 楼 cbufeng 2010-10-14  
楼主,请问如果资源包中有子文件夹,应该如何处理?
1 楼 haishizi 2010-08-25  
很好。谢谢分享。
不过len  |= (is.read() 0xFF) << 16; 少了个&
哈哈。。。

相关推荐

    神经元细胞核检测数据集.zip

    数据集介绍:神经元细胞核检测数据集 一、基础信息 数据集名称:神经元细胞核检测数据集 图片数量: - 训练集:16,353张 - 测试集:963张 分类类别: - Neuron(神经元细胞核):中枢神经系统的基本功能单位,检测其形态特征对神经科学研究具有重要意义。 标注格式: - YOLO格式,包含边界框坐标及类别标签,适用于目标检测任务 - 数据来源于显微镜成像,覆盖多种细胞分布形态和成像条件 二、适用场景 神经科学研究: 支持构建神经元定位分析工具,助力脑科学研究和神经系统疾病机理探索 医学影像分析: 适用于开发自动化细胞核检测系统,辅助病理诊断和细胞计数任务 AI辅助诊断工具开发: 可用于训练检测神经元退行性病变的模型,支持阿尔茨海默症等神经疾病的早期筛查 生物教育及研究: 提供标准化的神经元检测数据,适用于高校生物学实验室和科研机构的教学实验 三、数据集优势 大规模训练样本: 包含超1.6万张训练图像,充分覆盖细胞核的多样分布状态,支持模型深度学习 精准定位标注: 所有标注框均严格贴合细胞核边缘,确保目标检测模型的训练精度 任务适配性强: 原生YOLO格式可直接应用于主流检测框架(YOLOv5/v7/v8等),支持快速模型迭代 生物学特性突出: 专注神经元细胞核的形态特征,包含密集分布、重叠细胞等真实生物场景样本 跨领域应用潜力: 检测结果可延伸应用于细胞计数、病理分析、药物研发等多个生物医学领域

    剪切散斑干涉条纹图像处理技术研究进展.pdf

    剪切散斑干涉条纹图像处理技术研究进展.pdf

    网络规划设计师网络理论基础(1-6章).pdf

    软考初级程序员相关文档

    ATB2012-75011-T00-射频组件-中文数据手册.pdf

    ATB2012-75011-T00-射频组件-中文数据手册

    光伏储能系统三相PQ恒功率并网控制策略仿真研究——基于双闭环控制与MPPT算法的优化实践 MATLAB仿真 光伏储能三相PQ恒功率并网控制仿真:网侧PQ恒控、储能双闭环控制策略及光伏Boost研究

    内容概要:本文详细介绍了光伏储能系统中三相PQ恒功率并网控制策略的仿真研究。主要内容涵盖网侧PQ恒功率控制、储能系统的双闭环控制策略以及光伏Boost模型的构建。网侧控制采用PQ恒功率控制,确保系统在各种负载条件下维持恒定功率输出,减少电能损失和电网能耗。储能控制部分,通过直流母线电压外环和电池电流内环的双闭环控制策略,实现了对系统输出电压和电池充放电电流的精确控制。光伏Boost模型则基于经典MPPT算法(如扰动观察法),确保在功率等级相似情况下仅需调整光伏模块即可满足需求。文中还展示了使用MATLAB等工具进行仿真的示例代码,评估不同控制策略的效果。 适合人群:从事电力系统、新能源技术和自动化控制领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解光伏储能系统控制策略及其仿真方法的专业人士,帮助他们掌握最新的技术进展和应用实例。 其他说明:文章引用了相关文献,提供了丰富的理论基础和实践经验,有助于进一步研究和探讨光伏储能技术的发展趋势和应用前景。

    毕业设计-分享送红包 3.0.1-整站商业源码.zip

    毕业设计-分享送红包 3.0.1-整站商业源码.zip

    毕业设计-互联网加共享农业V1.3.6 小程序前端+后端-整站商业源码.zip

    毕业设计-互联网加共享农业V1.3.6 小程序前端+后端-整站商业源码.zip

    基于Matlab Simulink的双馈风机风电场调频研究:虚拟惯性惯量与下垂控制技术

    内容概要:本文探讨了在Matlab/Simulink环境下,针对双馈风机风电场的一次调频方法,特别是虚拟惯性惯量控制和下垂控制的应用。文中介绍了这两种控制策略的具体实现方式及其在三机九节点系统中的应用,同时讨论了同步机、火电和水电机组的调频机制。此外,文章强调了Phasor模型在提高仿真速度方面的作用,使得仿真时间缩短至仅需20秒。 适合人群:从事风力发电、电力系统自动化及相关领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解风电调频技术的研究人员,旨在提供一种高效、快速的仿真工具,以便更好地理解和优化风电场的调频性能。 其他说明:文章不仅提供了理论解释,还包括具体的Matlab/Simulink代码片段,便于读者实际操作和验证。

    MATLAB Simulink中PID控制器用于智能建筑温度控制的仿真研究 PID控制器

    内容概要:本文介绍了PID控制器在智能建筑温度控制中的应用,特别是通过MATLAB的Simulink工具进行仿真的过程。首先阐述了PID控制器的基本原理及其优点,接着详细描述了如何在Simulink中建立PID控制模型并调整相关参数,最后展示了具体的MATLAB代码示例以及仿真结果。文章强调了PID控制器在提高温度控制精度方面的重要性和广泛应用前景。 适合人群:对自动化控制理论感兴趣的学生和技术爱好者,尤其是那些希望深入了解PID控制器工作原理及其在实际工程中应用的人群。 使用场景及目标:适用于想要学习如何使用MATLAB/Simulink进行控制系统仿真的初学者或者有一定经验的研发人员,旨在帮助他们掌握PID控制器的设计与实现技巧。 其他说明:文中提供的示例代码可以帮助读者更快地上手操作,同时鼓励读者尝试不同的参数配置以优化控制性能。此外,还提到了PID控制器在未来可能的发展方向和应用场景。

    【空间智能领域】基于3D视觉的多应用场景分析:自动驾驶、3D生成、具身智能及扩展现实(XR)技术发展趋势报告

    内容概要:报告详细分析了空间智能的发展现状与未来趋势,涵盖自动驾驶、3D生成、具身智能、扩展现实(XR)和世界模型五大领域。自动驾驶凭借庞大的车队数据积累和成熟的数据闭环机制,成为目前最成熟的空间智能应用,正逐步从模仿学习转向强化学习。3D生成技术处于快速发展阶段,主要瓶颈在于寻找具有良好扩展性的3D数据表征方式。具身智能虽然潜力巨大,但整体成熟度较低,数据积累、算法和硬件方面均处于早期探索阶段。XR作为新的信息交互方式,其硬件基础逐渐成熟,未来将推动更多3D原生内容和应用生态的繁荣。世界模型则是空间智能发展的终极目标,它通过构建对现实世界的内部表征,实现对未来状态的预测和行动后果的推理。 适合人群:对空间智能领域感兴趣的科技从业者、研究人员、投资者及相关政策制定者。 使用场景及目标:①了解空间智能各细分领域的技术进展、挑战和发展趋势;②评估投资机会和技术合作方向;③为政策制定提供参考依据。 其他说明:报告强调了数据体系成熟度是观察空间智能进展的关键指标,包括数据积累、数据构成、数据分布和数据闭环四部分。此外,报告还指出,随着3D和物理AI数据体系的进一步成熟,空间智能将迎来爆发式增长。

    基于粒子群优化算法的永磁同步电机(PMSM)参数辨识:高效智能优化方法与实验研究

    内容概要:本文详细介绍了基于粒子群优化算法(PSO)的永磁同步电机(PMSM)参数辨识方法。文章从引言部分阐述了PMSM的重要性和参数辨识的需求出发,逐步深入到具体的算法流程,包括粒子群的初始化、速度和位置的更新及其边界处理、自适应变异、约束条件判断以及适应度计算与比较。通过多次迭代,最终确定最优的电机参数组合。文中还讨论了实际应用中的调整技巧和未来的研究方向。 适合人群:从事电机控制、自动化工程及相关领域的研究人员和技术人员。 使用场景及目标:适用于需要对永磁同步电机进行高精度参数辨识的场合,如工业自动化设备、电动汽车等领域。目标是提升电机控制系统的性能,确保系统稳定运行。 其他说明:本文不仅提供了理论依据,还结合了大量实验数据验证了该方法的有效性,为后续研究奠定了坚实的基础。

    多环境动物及人类活动目标检测数据集.zip

    数据集介绍:多环境动物及人类活动目标检测数据集 一、基础信息 数据集名称:多环境动物及人类活动目标检测数据集 图片数量: - 训练集:12,599张图片 - 验证集:1,214张图片 - 测试集:607张图片 总计:14,420张图片 分类类别: - bear(熊): 森林生态系统的顶级掠食者 - bird(鸟类): 涵盖多种飞行及陆栖鸟类 - cougar(美洲狮): 山地生态关键物种 - person(人类): 自然环境与人类活动交互场景 - truck(卡车): 工业及运输场景的车辆目标 - ungulate(有蹄类动物): 包括鹿、羊等草食性哺乳动物 - wolf(狼): 群体性捕食动物代表 标注格式: YOLO格式标注,包含归一化坐标的边界框及类别标签,可直接适配YOLOv5/v7/v8等主流检测框架。 数据特性: 涵盖航拍、地面监控等多视角数据,包含昼夜不同光照条件及复杂背景场景。 二、适用场景 野生动物保护监测: 支持构建自动识别森林/草原生态系统中濒危物种的监测系统,用于种群数量统计和栖息地研究。 农业与畜牧业管理: 检测农场周边的捕食动物(如狼、美洲狮),及时预警牲畜安全风险。 智能交通系统: 识别道路周边野生动物与运输车辆,为自动驾驶系统提供碰撞预警数据支持。 生态研究数据库: 提供7类典型生物与人类活动目标的标注数据,支撑生物多样性分析与人类活动影响研究。 安防监控增强: 适用于自然保护区监控系统,同时检测可疑人员(person)与车辆(truck)的非法闯入。 三、数据集优势 多场景覆盖: 包含森林、公路、山地等多类型场景,覆盖从独居动物(cougar)到群体生物(wolf)的检测需求。 类别平衡设计: 7个类别经专业数据采样,避免长尾分布问题,包含: - 3类哺乳动物捕食者(bear/cougar/wolf) - 2类环境指示物种(bird/ung

    基于实体知识推理的端到端任务型对话.pdf

    基于实体知识推理的端到端任务型对话.pdf

    SSM框架下的酒店管理系统的源代码及数据库文件(适用于毕设)

    基于SSM的酒店管理系统源码+数据库文件.zip,该项目已高分通过。适用于计算机专业学生毕设及Java学习者实战练习,也可用于课程设计或期末大作业。包含项目源码、数据库脚本、软件工具及说明文档等,可直接使用。后台管理功能包括:会员信息管理(显示和删除)、客房信息管理(添加/删除客房类型和客房,编辑客房信息,未实现评论管理)、预订信息管理和入住信息管理(添加入住信息,结账后删除)。用户端主要功能有登录注册、客房预订及查看/编写评论。。内容来源于网络分享,如有侵权请联系我删除。

    毕业设计-灵石AI识别大全V3.0.0 小程序前端+后端-整站商业源码.zip

    毕业设计-灵石AI识别大全V3.0.0 小程序前端+后端-整站商业源码.zip

    CTF-Misc应用:图片隐写技术与实战项目解析

    CTF(Capture The Flag)竞赛中的Misc(杂项)类别题目涉及多种技术领域,包括隐写术、编码、取证、流量分析等。其中,图片隐写是CTF-Misc中常见且重要的题型之一。本文将重点介绍CTF-Misc中图片隐写技术的学习资料、操作应用以及实战项目。CTF-Misc中的图片隐写技术是竞赛中的重要题型。通过学习图片隐写的原理、操作应用以及实战项目,可以提升在CTF竞赛中的解题能力。掌握常见的隐写工具,并结合实战案例进行练习,是提高CTF-MISC技能的有效方法。

    网络规划设计师-英语题汇总.pdf

    软考初级程序员相关文档

    毕业设计-仿花生日记官网源码-整站商业源码.zip

    毕业设计-仿花生日记官网源码-整站商业源码.zip

    微波精密固定衰减器-中文数据手册.pdf

    微波精密固定衰减器-中文数据手册

Global site tag (gtag.js) - Google Analytics