用C#制作图片格式转化器

来源:网络收集 责任编辑:栏目编辑 发表时间:2013-07-01 20:38 点击:
   Visual C#是微软公司推出的下一代程序开发语言,是微软.Net 框架中的的一个重要组成部分,在推出Visual C#的过程中,微软公司还推出了与之相对应的一个软件开发包--.Net FrameWork SDK。此软件开发包里面封装了许多类、对象。Visual C#就是通过调用这些类、对象来实现许多比较强大的功能。

-.概述:

  正由于C#调用了许多功能强大的类和对象,所以用C#和.Net Framework实现各种不同图象格式之间的转化是非常方便,而用Windows API的话,由于没有直接的函数支持,工作量将会非常大。在C#下,你只要运用ImageFormat类(在System.Drawing.Imaging 名字空间下),就可以实现以下常见图象格式之间的转化了。

BMP - 扩展名.bmp

GIF - 扩展名.gif

Icon - 扩展名.ico

JPEG - 扩展名.jpg, .jpeg

PNG - 扩展名.png

TIFF - 扩展名.tif

WMF - 扩展名 .wmf


二.程序设计和运行的环境:

(1)微软公司视窗2000服务器版

(2).Net FrameWrok SDK Beta 2版
三.具体步骤:

(1).在Visual Studio下新建一个C#的工程,不妨命名为Image Converter。图示如下:



(2).现在我们来设计程序的主界面:

先将窗体的Text属性设置为Image Converter。

再往窗体上添加两个Button控件、两个ComboBox控件以及一个PictureBox:

将两个Button控件的Name属性分别置为m_btnOpen和m_btnSaveAs,Text属性分别置为“打开”和“转化为”(不妨将它们的FlatStyle属性都置为Flat,因为现在流行Flat啊!)。

将两个ComboBox控件的Name属性分别置为m_cmbOpen和m_cmbSaveAs,将它们的Text属性都设置为*.bmp,同时在它们的Items属性中的字符串集合编辑器里均加入*.bmp*.jpg*.gif*.tif(每行一个)。

最后我们将PictureBox控件的Name属性设置为m_pictureBox,同时为了外观明显我们将它的BorderStyle属性改为FixedSingle。

好了,到此为止我们以及做好了所有的界面工作了。图示如下:


3).接下来我们就编写代码部分(窗体右键的“查看代码”就可以打开代码文件):

首先我们在代码文件的开始处添加using System.Drawing.Imaging;因为该程序用到了ImageFormat类,而这个类是在System.Drawing.Imaging名字空间下的,所以必须添加这一句。

接着,给我们的类添加三个私有的数据成员:private Bitmap m_bitmap;private int m_width0;private int m_height0;在构造函数中初始化这三个数据成员,代码如下:

public Form1()

{

//

// Required for Windows Form Designer support

//

InitializeComponent();

//

// TODO: Add any constructor code after InitializeComponent call

//

m_bitmap = null;

m_width0 = m_pictureBox.Size.Width;

m_height0 = m_pictureBox.Size.Height;

}

最后,给“打开”和“转化为”两个按钮添加Click事件,生成两个消息相应函数,代码以及注释如下:

private void m_btnOpen_Click(object sender, System.EventArgs e)

{

//创建一个打开对话框对象

OpenFileDialog ofd = new OpenFileDialog();

//设置对话框的各项属性

ofd.Filter = m_cmbOpen.Text + "|" + m_cmbOpen.Text;

string filter = ofd.Filter;

ofd.InitialDirectory = System.Environment.CurrentDirectory;

ofd.Title = "打开图象文件";

ofd.ShowHelp = true;

if(ofd.ShowDialog() == DialogResult.OK)

{

//如果是OK,则建立一个图象对象

string strFileName = ofd.FileName;

m_bitmap = new Bitmap(strFileName);

//调整m_pictureBox的大小以适合图象大小

if(m_bitmap.Width > m_bitmap.Height)

{

//保持宽度

m_pictureBox.Width = m_width0;

m_pictureBox.Height = (int)((double)m_bitmap.Height*m_width0/m_bitmap.Width);

}

else

{

//保持高度

m_pictureBox.Height = m_height0;

m_pictureBox.Width = (int)((double)m_bitmap.Width*m_height0/m_bitmap.Height);

}

//显示图片

m_pictureBox.Image = m_bitmap;

//设置窗体的标题

this.Text = "Image Converter: " + strFileName;

m_btnSaveAs.Enabled = true;

}

}

private void m_btnSaveAs_Click(object sender, System.EventArgs e)

{

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • 用C#制作屏幕捕获程序
      • .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上
      • 遍历ArrayList易犯错误
      • C#对XML操作:一个处理XML文件的类(1)
      • .NET简谈反射(动态调用)
      • 使用C#编写LED样式时钟控件
      • DataList嵌套问题 如何删除内层子DataList的记录
      • 怎样用C#实现完整文档打印功能
      • .NET简谈自定义事务资源管理器
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1