在日常工作中,经常需要不同格式(JPG,PNG,BMP,GIF,ICO)的图片,有时还需要进行图片格式的相互转换,本文以一个简单的小例子,简述图片格式转换的常见方法,仅供学习分享使用,如有不足之处,还请指正。
涉及知识点
- OpenFileDialog 打开文件对话框,用于选择文件,可以设置过滤后缀。
- FolderbrowserDialog 文件夹选择对话框,用于选择一个文件夹,可以新增。
- ImageFormat 图片类型枚举。
- Bitmap 位图对象,包含对应的属性和内容。
- Stream 流对象的基类。
- FlowLayoutPanel 流式布局容器,所添加的元素,以横向或纵向依次排列。
示例效果图
核心代码
打开图片
1 /// <summary> 2 /// 打开图片 3 </summary> 4 <param name="sender"></param> 5 <param name="e"></param> 6 private void btnopen_Click(object sender,EventArgs e) 7 { 8 9 this.fileDialog.Filter = fileFilter; 10 this.fileDialog.Multiselect = true; 11 this.fileDialog.CheckFileExists = 12 if (fileDialog.ShowDialog() == DialogResult.OK) 13 { 14 string[] fileNames = this.fileDialog.FileNames; 15 foreach(string fileName in fileNames) 16 { 17 Bitmap bmp = new Bitmap(fileName); 18 //保存图片名称 19 bmp.Tag = Path.GetFileNameWithoutExtension(fileName); 20 PictureBox Box = PictureBox(); 21 Box.Image = bmp; 22 Box.Width = 10523 Box.Height = 15024 Box.BorderStyle = BorderStyle.FixedSingle; 25 Box.Padding = new Padding(2); 26 .flowPnl.Controls.Add(Box); 27 } 28 this.txtFile.Text = Path.GetDirectoryName(fileNames[0]); 29 30 } 31 }
转换图片格式
转换图片 4 void convertimage(string dir,string filter,Bitmap bmp) 5 6 string filePath = Path.Combine(dir,1)">string.Format("{0}.{1}",bmp.Tag.ToString(),filter.ToLower())); 7 switch (filter) 8 9 case JPG: 10 bmp.Save(filePath,ImageFormat.Jpeg); 11 break12 PNG14 GIF17 18 BMP19 20 21 ICO22 Stream stream = File.Create(filePath); 23 Icon icon = Icon.FromHandle(bmp.GetHicon()); 24 icon.Save(stream); save the icon 25 stream.Close(); 28 }
如果需要示例的源码,可以点击链接进行下载
备注
题李凝幽居
作者:贾岛 唐代
闲居少邻并,草径入荒园。
鸟宿池边树,僧敲月下门。
过桥分野色,移石动云根。
暂去还来此,幽期不负言。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。