前几天准备做的桌面管理的小工具,发现一些skin的Image很多,在程序文件夹里看着不是那么的舒服,于是准备先做个图片打包的工具。
大体准备的思路在写入准备利用byte[]来保存每个Image的信息,然后全部写入一个到一个文件,在文件的开头写入Image的数量,每个Image的起始处写入其长度。
读取时先读取Image的数量,在读取每个的长度,循环读取byte[]最后转换回Image。
首先做一个主界面,效果如图
然后新建4个窗体,分别命名为MakeFile,ViewFile,ProduceFile,HelpFile;
在主窗体单击第一二三五Button时,分别打开上面4个窗体,并隐藏主窗体;
考虑关闭子界面时需要调用隐藏的主窗体,与语言的切换(此程序因为字不多,语言直接用string[]保存了);
在4个子窗体的每个的的构造函数中接受2个参数,第一个是Main类对象 是用来保存主窗体对象,第二个bool 布尔型变量用来判断语言;
代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace ResourceFile { public partial class Main : Form { bool isEnglish = false; string[] chinese = { "资源文件管理 - L.E.O", "制作资源文件", "查看资源文件", "生成DLL链接库", "帮 助", "退 出" }; string[] english = { "Resource File Management", "Making Resource File", "View Resource File", "Produce DLL Library", "Help", "Exit" }; public Main() { InitializeComponent(); } private void makeButton_Click(object sender, EventArgs e) { MakeFile mf = new MakeFile(this, isEnglish); mf.Show(); this.Hide(); } private void viewButton_Click(object sender, EventArgs e) { ViewFile vf = new ViewFile(this, isEnglish); vf.Show(); this.Hide(); } private void produceButton_Click(object sender, EventArgs e) { ProduceFile pf = new ProduceFile(this, isEnglish); pf.Show(); this.Hide(); } private void helpButton_Click(object sender, EventArgs e) { HelpFile hf = new HelpFile(this, isEnglish); hf.Show(); this.Hide(); } private void exitButton_Click(object sender, EventArgs e) { Application.Exit(); } private void languageButton_Click(object sender, EventArgs e) { isEnglish = !isEnglish; if (isEnglish) { languageButton.Text = "简体中文"; this.Text = english[0]; makeButton.Text = english[1]; viewButton.Text = english[2]; produceButton.Text = english[3]; helpButton.Text = english[4]; exitButton.Text = english[5]; } else { languageButton.Text = "English"; this.Text = chinese[0]; makeButton.Text = chinese[1]; viewButton.Text = chinese[2]; produceButton.Text = chinese[3]; helpButton.Text = chinese[4]; exitButton.Text = chinese[5]; } } } }
源码在全部完成后提供下载