快讯
- 装机圈新宠儿,微星 MAG B850M MORTAR Wi-Fi迫击炮主板评测
- 微星MPG Z890I EDGE TI WIFI 刀锋 钛评测:14 层 PCB 加持,同级之中强无敌!
- 打造低调而卓越的Ai PC,微星MEG Z890 ACE战神主板开箱
- 解密“星”制造,微星深圳恩斯迈工厂探秘之旅
- 游泳也需音乐相伴!韶音OpenSwim Pro评测
- 又一款轻量化电竞
- 元气满满的充电之旅!铂陆帝商超活动嗨翻周末
- 雷柏机甲编码主题系列警戒线S-07图赏:以机械美感诠释潮流新理念桌搭!
- 更适合新手体质的枪战游戏,《无畏契约》开战!
- 现代与传统的融合之旅:贝尔金笔记本扩展坞体验
- 航天品质下的极速充电体验——航嘉G65 GaN快速充电器评测
- 有颜有实力的外设谁能不爱?来看雷柏商超巡演
- 新潮外设引爆全场!雷柏联合PC打造潮品酷玩趴
- 幻彩绚丽,玩趣十足!雷柏V700DIY键盘图赏
- U皇就该配板皇,超频玩家现身说法教你选主板
- 13代酷睿的超频利器,有好板才有好性能
- 全新升级,雷柏V20S RGB光学游戏鼠标2023版详解
- 马斯克30亿放“烟花”,民航故事为何值钱?
- 让露营生活更精致!铂陆帝户外电源AC180评测
- 惠威音响体验:音响中的艺术品,拥有好听的灵魂
- 装机圈新宠儿,微星 MAG B850M MORTAR WiFi迫击炮主板评测31日
- 微星MPG Z890I EDGE TI WIFI 刀锋 钛评测:14 层 PCB 加持,同级之中强无敌!29日
- 打造低调而卓越的Ai PC,微星MEG Z890 ACE战神主板开箱10日
- 解密“星”制造,微星深圳恩斯迈工厂探秘之旅02日
- 游泳也需要音乐相伴!韶音新一代游泳耳机OpenSwim Pro评测12日
- 又一款轻量化电竞"神鼠"来袭!玄熊猫3395游戏鼠标今晚首发149元10日
- 元气满满的充电之旅!铂陆帝商超活动嗨翻周末27日
- 雷柏机甲编码主题系列警戒线S-07图赏:以机械美感诠释潮流新理念桌搭!24日
- 更适合新手体质的枪战游戏,《无畏契约》国服正式开战!20日
- 玩物近话论:现代科技与甘南秘境的融合之旅 贝尔金笔记本扩展坞体验14日
- 航天品质下的极速充电体验——航嘉G65 GaN快速充电器评测12日
- 有颜有实力的外设好物谁能不爱?雷柏点燃PCGROUP潮品商超巡演15日
- 新潮外设好物引爆全场!雷柏联合PCGROUP打造潮品酷玩趴15日
- 幻彩绚丽,玩趣十足!雷柏V700DIY热插拔机械键盘图赏10日
- U皇就该配板皇,超频玩家现身说法教你选主板26日
- 13代酷睿的超频利器,有好板才有好性能25日
- 全新升级 经典复刻 雷柏V20S RGB光学游戏鼠标2023版详解25日
- 马斯克30亿放“烟花”,民航故事为何值钱?23日
- 告别电量焦虑,让露营生活多一分精致!铂陆帝户外电源AC180开箱评测17日
- 惠威音响体验:音响中的艺术品,拥有好听的灵魂04日
用C#制作图片格式转化器
2004-02-14 09:34 出处:eNet硅谷动力 作者:王凯明 责任编辑:pjl
1回顶部 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版
2回顶部
三.具体步骤:
(1).在Visual Studio下新建一个C#的工程,不妨命名为Image Converter。图示如下:
![]() ![]() 3回顶部
(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)
{
//创建一个保存对话框对象
SaveFileDialog sfd = new SaveFileDialog();
//设置对话框的各项属性
sfd.Title = "转化为";
sfd.OverwritePrompt = true;
sfd.CheckPathExists = true;
sfd.Filter = m_cmbSaveAs.Text + "|" + m_cmbSaveAs.Text;
sfd.ShowHelp = true;
if(sfd.ShowDialog() == DialogResult.OK)
{
//如果是OK,则根据不同的选项保存为相应格式的文件
string strFileName = sfd.FileName;
switch(m_cmbSaveAs.Text)
{
case "*.bmp":
// 在这里用ImageFormat类
m_bitmap.Save(strFileName, ImageFormat.Bmp);
break;
case "*.jpg":
// 在这里用ImageFormat类
m_bitmap.Save(strFileName, ImageFormat.Jpeg);
break;
case "*.gif":
// 在这里用ImageFormat类
m_bitmap.Save(strFileName, ImageFormat.Gif);
break;
case "*.tif":
// 在这里用ImageFormat类
m_bitmap.Save(strFileName, ImageFormat.Tiff);
break;
}
this.Text = "Image Converter: " + strFileName;
}
}
4回顶部
(4).OK啦,现在按Ctrl+F5试一下效果吧。图示如下:
![]() |
最热搜索
无线路由器怎么用 会说话的汤姆猫电脑版 12306网上订火车票 跳舞吧 flash player 下载 PP助手电脑版 Adobe Reader(pdf阅读) iOS6正式版12项新功能 QQ空间克隆器 9158视频KTV 植物大战僵尸辅助工具 Win8怎么关机 QQ空间进不去 2013年春节是几月几号 QQ昵称 QQ空间皮肤 PPT模板 电脑输入法不见了怎么办 2012中秋节是几月几日 word安全模式 qq输入法怎么点亮 IE修复 感恩节是几月几日 CSS布局 PS快捷键 Outlook设置 声卡驱动器官方免费下载 格式工厂怎么用 桌面图标有阴影怎么去掉 Windows RT是什么意思 2013年日历设计 Word打不开怎么办 Win8专区 腾讯微云网 windows8激活工具 剑灵什么时候公测 QQ通讯录怎么用 开心斗地主 拖拉机小游戏 麻将游戏 中国象棋 德州扑克 黄金矿工中文版 保皇扑克游戏 四国军棋 万圣节是几月几日 ps抠图教程 12306订票助手 万圣节小游戏大全 rar文件怎么打开 Photoshop CS6教程 iOS6完美越狱 QQ个性签名