说明:
该系列读书笔记为《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);
}
}
}
}
结果如图:
需要注意的问题:
在写好paint事件后,需要在窗体的事件中进行关联,开始没有关联,所以总是不能显示。
如下:
分享到:
相关推荐
用C#和office COM功能(VS2010版本),将Excel的文件里的Sheet1的列表读入,并转换成XML格式文件。文件内容较多的时候请使用异步Delegate的功能完成转换功能。使用Regex检查Email和学号的合法性(读入Excel时)。 将...
在C#中实现图像处理是一项常见的任务,尤其是在游戏开发、图像分析、图形用户界面设计等领域。本教程将深入探讨如何获取一幅图片的像素值及其RGB(红绿蓝)分量。首先,我们需要了解一些基本概念。 图像本质上是由...
总的来说,"VC++图像读入并显示"这个例子是一个很好的学习实践,通过它,你可以深入了解MFC框架以及Windows图形编程的基础。掌握这些知识,对于进一步开发涉及到图像处理的复杂应用,如图像编辑器、视频播放器等,都...
在C#中处理RAW文件需要对图像处理原理、文件结构以及特定相机的RAW格式有深入理解。以下是对"读取RAW文件程序"这一主题的详细解释。 1. **RAW文件格式**: - RAW文件保存了相机传感器捕获的原始光信号,未经任何...
在OpenCV库中,图像处理是其核心功能之一。标题"opencv-ex3-2.rar_opencv 显示_图像 读入 显示_图像反转_显示图像_读入图像"涉及了几个基本操作,包括图像的读入、显示、以及反转。下面我们将详细探讨这些知识点。 ...
在医学图像处理领域,图像的读入和显示是至关重要的第一步。这涉及到计算机视觉和图像处理的基本技术,尤其是在使用编程语言如Visual C++(VC)时。本文将深入探讨如何利用VC实现图像的读入与显示,特别是涉及Direct...
开发者需要加载图片文件,创建纹理对象,并将其绑定到模型的表面。在C#中,这通常涉及D3DX库的使用,如D3DXLoadSurfaceFromFile函数来加载图片,然后通过设置纹理坐标将图像应用到多边形上。 在Windows Forms ...
《图像处理与计算机视觉》课程简介 本课程是计算机专业研究生教学的“图象处理与计算机视觉”专业选修课程的配套实验课程,是以计算机专业研究生为教学对象,强调理论和上机实践相结合的一门课程。重点培养学生的...
总的来说,这篇毕业论文全面覆盖了BMP图像格式的读取和显示技术,对于学习图像处理和编程的人来说是一个宝贵的资源。通过理解和实践这些知识,不仅可以掌握BMP文件处理,还能为其他图像格式的处理打下基础。
"[实训解析]Python 计算思维训练——SAR图像处理-第2关:读入一个目录下所有图像_5307.pdf" 该标题表明,这是一个 Python 计算思维训练的实践解析,重点在于SAR图像处理,并且是第二关,主题是读取一个目录下所有...
在计算机图形学领域,BMP(Bitmap)是一种常见的位图图像格式,用于存储像素数据。在Windows操作系统中,BMP文件被广泛支持...通过这个过程,可以加深对图像处理和Windows编程的理解,为后续更复杂的图形操作打下基础。
### opencv图像文件读入和显示 #### C语言版本 在使用OpenCV处理图像时,首先需要掌握如何读取和显示图像。以下是一段典型的C语言代码示例,用于加载和展示一张图像。 ```c #include "cv.h" #include "highgui.h...
本主题将深入探讨“读入YUV文件”以及相关的图像处理技术。 首先,YUV代表颜色空间的一种表示方式,其中Y代表亮度(Luma),而U和V则是色度(Chrominance)分量。这种格式被广泛用于存储和传输视频,因为它可以节省...
4. **处理实体**:根据DXF文件格式解析实体(如直线、圆、文字等),并将它们存储在内存中的数据结构中。 5. **错误处理**:考虑到DXF文件可能不规范,需要设置适当的错误处理机制。 对于DXF文件的写入,过程大致...
为了在WPF中显示这些内容,我们需要一个解析器来读取DXF文件并将其转换为可操作的数据模型。 步骤一:DXF文件解析 1. 创建一个DXF解析器:这个解析器应该能够读取DXF文件的各个部分,包括头信息、图层定义、实体...
C#学习,在制作固件升级的上位机时候常用到BIN文件和HEX文件加载,BIN文件相对特殊,是纯粹的二进制数据域,没有多余的协议格式,所以会用到特殊的加载方式,两种方法实现BIN文件加载,速度上的却别让你领悟技巧的...
总结来说,读取和显示JPEG文件涉及到图像处理的基本原理和编程技巧。通过使用适当的库(如libjpeg),理解JPEG文件结构,以及正确地操作VC++ 6.0中的文件流和设备上下文,我们可以成功地在应用程序中展示JPEG图像。...
在计算机视觉领域,OpenCV(开源计算机视觉库)是一...无论是简单的读取显示,还是复杂的图像处理任务,OpenCV都是计算机视觉领域的首选工具之一。通过熟悉和掌握这些基础操作,开发者可以快速进入图像处理的广阔天地。
本篇文章将详细探讨如何使用VC++实现文件的读取、处理和保存,以及涉及的相关图像处理技术。 首先,VC++中进行文件操作主要依赖于C++标准库中的`fstream`头文件,它提供了`ifstream`(输入文件流)和`ofstream`...
①读入图像文件并把图像转为灰度图像,显示图像,X轴标注为图(a); ②计算图像旋转θ角后的四个顶点坐标(以便确定旋转后的图像大小); ③根据四个顶点坐标,计算移动偏移量△x、△y,移动图像(目的使旋转后的...