当前位置: 首页 > news >正文

读入图像文件并显示【C#图像处理学习笔记】

说明:

该系列读书笔记为《C#数字图像处理算法典型事例》(赵春江 编著,人民邮电出版社,2009)读书笔记。

详细内容,请参考原始图书。

================================================

代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace Demo1

{

public partial class Form1 : Form

{

private string curFileName;

private System.Drawing.Bitmap curBitmap;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void open_Click(object sender, EventArgs e)

{

OpenFileDialog opndlg = new OpenFileDialog();

opndlg.Filter = "所有文件|*.bmp;*.pcx;*.png;*.jpg;*.gif;" +

"*.tif;*.ico;*.dcx;*.cgm;*.cdr;*.wmf;*.eps;*.emf;|" +

"位图(*.bmp;*.jpg;*.png;...)|*.bmp;*.pcx;*.png;*.jpg;*.gif;*.tif;*.ico|" +

"矢量图(*.wmf;*.eps;*.emf;...)|*.dcf;*.cgm;*.cdr;*.wmf;*.eps;*.emf";

opndlg.Title = "打开图形文件";

opndlg.ShowHelp = true;

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

{

curFileName = opndlg.FileName;

try

{

curBitmap = (Bitmap)Image.FromFile(curFileName);

}

catch (Exception exp)

{

MessageBox.Show(exp.Message);

}

}

Invalidate();

}

private void save_Click(object sender, EventArgs e)

{

if (curBitmap == null)

return;

SaveFileDialog saveDlg = new SaveFileDialog();

saveDlg.Title = "保存为";

saveDlg.OverwritePrompt = true;

saveDlg.Filter = "BMP文件(*.bmp)|*.bmp|" + "Gif文件(*.gif)|*.gif|" +

"JPEG文件(*.jpg)|*.jpg|" + "PNG文件(*.png)|*.png";

saveDlg.ShowHelp = true;

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

{

string fileName = saveDlg.FileName;

string strFilExtn = fileName.Remove(0, fileName.Length - 3);

switch (strFilExtn)

{

case "bmp":

curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);

break;

case "jpg":

curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);

break;

case "gif":

curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Gif);

break;

case "tif":

curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Tiff);

break;

case "png":

curBitmap.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);

break;

default:

break;

}

//设定文件格式,Ctrl+E,D

}

}

private void close_Click(object sender, EventArgs e)

{

this.Close();

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

Graphics g = e.Graphics;

if (curBitmap != null)

{

g.DrawImage(curBitmap, 160, 20, curBitmap.Width, curBitmap.Height);

}

}

}

}

结果如图:

clip_image002

需要注意的问题:

在写好paint事件后,需要在窗体的事件中进行关联,开始没有关联,所以总是不能显示。

如下:

clip_image004

相关文章:

  • 分页存储过程(三)
  • 禁用Dropbear中DNS反向查询连接客户端地址补丁
  • Windows Phone开发(29):隔离存储C
  • 马宁的Windows Phone 7开发教程(3)——XNA下使用MessageBox和软键盘
  • STP详解
  • 又见西安
  • 一次失败的网购:在兰蔻官网订购的货不对版
  • 多线程试题汇总
  • CentOS上配置LVS DR集群
  • Android应用加入微信分享
  • nowrap要与回车换行符结合才有意义
  • XMPP 基础
  • 初学3ds Max,做了个雪人,大家来评评哪个更好看
  • 精彩十年(3)——初露锋芒
  • Java常用工具类的使用
  • [译]如何构建服务器端web组件,为何要构建?
  • C# 免费离线人脸识别 2.0 Demo
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • java概述
  • JAVA之继承和多态
  • Less 日常用法
  • SpiderData 2019年2月23日 DApp数据排行榜
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • webgl (原生)基础入门指南【一】
  • Windows Containers 大冒险: 容器网络
  • 官方解决所有 npm 全局安装权限问题
  • 实现菜单下拉伸展折叠效果demo
  • 我看到的前端
  • 携程小程序初体验
  • 组复制官方翻译九、Group Replication Technical Details
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​VRRP 虚拟路由冗余协议(华为)
  • !!java web学习笔记(一到五)
  • #HarmonyOS:基础语法
  • #pragma pack(1)
  • #数学建模# 线性规划问题的Matlab求解
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (14)Hive调优——合并小文件
  • (C++)八皇后问题
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (论文阅读30/100)Convolutional Pose Machines
  • (转) ns2/nam与nam实现相关的文件
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ***测试-HTTP方法
  • ***监测系统的构建(chkrootkit )
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .net 7 上传文件踩坑
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net Signalr 使用笔记
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .net2005怎么读string形的xml,不是xml文件。
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)