前几天准备做的桌面管理的小工具,发现一些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];
            }
        }

    }
}

 源码在全部完成后提供下载