在日常工作中,经常需要不同格式的图片,有时还需要进行图片格式的相互转换,本文以一个简单的小例子,简述图片格式转换的常见方法,仅供学习分享使用,如有不足之处,还请指正。
涉及知识点
- OpenFileDialog 打开文件对话框,用于选择文件,可以设置过滤后缀。
- FolderBrowserDialog 文件夹选择对话框,用于选择一个文件夹,可以新增。
- ImageFormat 图片类型枚举。
- Bitmap 位图对象,包含对应的属性和内容。
- Stream 流对象的基类。
- FlowLayoutPanel 流式布局容器,所添加的元素,以横向或纵向依次排列。
示例效果图
图片转换器的示例效果图如下:
核心代码
打开图片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
/// <summary> /// 打开图片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOpen_Click( object sender, EventArgs e) { this .fileDialog.Filter = fileFilter; this .fileDialog.Multiselect = true ; this .fileDialog.CheckFileExists = true ; if (fileDialog.ShowDialog() == DialogResult.OK) { string [] fileNames = this .fileDialog.FileNames; foreach ( string fileName in fileNames) { Bitmap bmp = new Bitmap(fileName); //保存图片名称 bmp.Tag = Path.GetFileNameWithoutExtension(fileName); PictureBox box = new PictureBox(); box.Image = bmp; box.Width = 105; box.Height = 150; box.BorderStyle = BorderStyle.FixedSingle; box.Padding = new Padding(2); this .flowPnl.Controls.Add(box); } this .txtFile.Text = Path.GetDirectoryName(fileNames[0]); } } |
转换图片格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
/// <summary> /// 转换图片 /// </summary> private void convertImage( string dir, string filter,Bitmap bmp) { string filePath = Path.Combine(dir, string .Format( "{0}.{1}" , bmp.Tag.ToString(), filter.ToLower())); switch (filter) { case "JPG" : bmp.Save(filePath, ImageFormat.Jpeg); break ; case "PNG" : bmp.Save(filePath, ImageFormat.Png); break ; case "GIF" : bmp.Save(filePath, ImageFormat.Gif); break ; case "BMP" : bmp.Save(filePath, ImageFormat.Bmp); break ; case "ICO" : Stream stream = File.Create(filePath); Icon icon = Icon.FromHandle(bmp.GetHicon()); icon.Save(stream); // save the icon stream.Close(); break ; } } |
如果需要示例的源码,可以点击链接进行下载
源码链接
以上就是C# 图片格式转换的实例代码的详细内容,更多关于c# 图片格式转换的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/hsiang/archive/2020/08/01/13416132.html