`
isiqi
  • 浏览: 16338190 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

读入图像文件并显示【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

分享到:
评论

相关推荐

    C#和office COM读入Excel文件并处理

    用C#和office COM功能(VS2010版本),将Excel的文件里的Sheet1的列表读入,并转换成XML格式文件。文件内容较多的时候请使用异步Delegate的功能完成转换功能。使用Regex检查Email和学号的合法性(读入Excel时)。 将...

    VC++图像读入并显示

    总的来说,"VC++图像读入并显示"这个例子是一个很好的学习实践,通过它,你可以深入了解MFC框架以及Windows图形编程的基础。掌握这些知识,对于进一步开发涉及到图像处理的复杂应用,如图像编辑器、视频播放器等,都...

    C# 读取RAW文件程序

    在C#中处理RAW文件需要对图像处理原理、文件结构以及特定相机的RAW格式有深入理解。以下是对"读取RAW文件程序"这一主题的详细解释。 1. **RAW文件格式**: - RAW文件保存了相机传感器捕获的原始光信号,未经任何...

    用c#实现图像处理:获取一幅图片的像素值及RGB分量

    在C#中实现图像处理是一项常见的任务,尤其是在游戏开发、图像分析、图形用户界面设计等领域。本教程将深入探讨如何获取一幅图片的像素值及其RGB(红绿蓝)分量。首先,我们需要了解一些基本概念。 图像本质上是由...

    opencv-ex3-2.rar_opencv 显示_图像 读入 显示_图像反转_显示图像_读入图像

    在OpenCV库中,图像处理是其核心功能之一。标题"opencv-ex3-2.rar_opencv 显示_图像 读入 显示_图像反转_显示图像_读入图像"涉及了几个基本操作,包括图像的读入、显示、以及反转。下面我们将详细探讨这些知识点。 ...

    医学图像处理中图像的读入显示

    在医学图像处理领域,图像的读入和显示是至关重要的第一步。这涉及到计算机视觉和图像处理的基本技术,尤其是在使用编程语言如Visual C++(VC)时。本文将深入探讨如何利用VC实现图像的读入与显示,特别是涉及Direct...

    老师布置的数字图像处理实验 c#(主要参考c#数字图像算法典型实例)

    《图像处理与计算机视觉》课程简介 本课程是计算机专业研究生教学的“图象处理与计算机视觉”专业选修课程的配套实验课程,是以计算机专业研究生为教学对象,强调理论和上机实践相结合的一门课程。重点培养学生的...

    BMP图像格式数据的读入函数及其计算机显示毕业论文

    总的来说,这篇毕业论文全面覆盖了BMP图像格式的读取和显示技术,对于学习图像处理和编程的人来说是一个宝贵的资源。通过理解和实践这些知识,不仅可以掌握BMP文件处理,还能为其他图像格式的处理打下基础。

    [实训解析]Python 计算思维训练——SAR图像处理-第2关:读入一个目录下所有图像_5307.pdf

    "[实训解析]Python 计算思维训练——SAR图像处理-第2关:读入一个目录下所有图像_5307.pdf" 该标题表明,这是一个 Python 计算思维训练的实践解析,重点在于SAR图像处理,并且是第二关,主题是读取一个目录下所有...

    DXF文件读入wpf Canvas显示

    为了在WPF中显示这些内容,我们需要一个解析器来读取DXF文件并将其转换为可操作的数据模型。 步骤一:DXF文件解析 1. 创建一个DXF解析器:这个解析器应该能够读取DXF文件的各个部分,包括头信息、图层定义、实体...

    bmp图像文件的显示

    在计算机图形学领域,BMP(Bitmap)是一种常见的位图图像格式,用于存储像素数据。在Windows操作系统中,BMP文件被广泛支持...通过这个过程,可以加深对图像处理和Windows编程的理解,为后续更复杂的图形操作打下基础。

    opencv图像文件读入和显示

    ### opencv图像文件读入和显示 #### C语言版本 在使用OpenCV处理图像时,首先需要掌握如何读取和显示图像。以下是一段典型的C语言代码示例,用于加载和展示一张图像。 ```c #include "cv.h" #include "highgui.h...

    C#实现DXF文件读取写入

    4. **处理实体**:根据DXF文件格式解析实体(如直线、圆、文字等),并将它们存储在内存中的数据结构中。 5. **错误处理**:考虑到DXF文件可能不规范,需要设置适当的错误处理机制。 对于DXF文件的写入,过程大致...

    读入YUV文件,图像的有关处理

    本主题将深入探讨“读入YUV文件”以及相关的图像处理技术。 首先,YUV代表颜色空间的一种表示方式,其中Y代表亮度(Luma),而U和V则是色度(Chrominance)分量。这种格式被广泛用于存储和传输视频,因为它可以节省...

    C# BIN文件加载

    C#学习,在制作固件升级的上位机时候常用到BIN文件和HEX文件加载,BIN文件相对特殊,是纯粹的二进制数据域,没有多余的协议格式,所以会用到特殊的加载方式,两种方法实现BIN文件加载,速度上的却别让你领悟技巧的...

    JPEG文件读入并显示

    总结来说,读取和显示JPEG文件涉及到图像处理的基本原理和编程技巧。通过使用适当的库(如libjpeg),理解JPEG文件结构,以及正确地操作VC++ 6.0中的文件流和设备上下文,我们可以成功地在应用程序中展示JPEG图像。...

    opencv读入一幅图像

    在计算机视觉领域,OpenCV(开源计算机视觉库)是一...无论是简单的读取显示,还是复杂的图像处理任务,OpenCV都是计算机视觉领域的首选工具之一。通过熟悉和掌握这些基础操作,开发者可以快速进入图像处理的广阔天地。

    VC++实现文件读入及相关图像处理

    本篇文章将详细探讨如何使用VC++实现文件的读取、处理和保存,以及涉及的相关图像处理技术。 首先,VC++中进行文件操作主要依赖于C++标准库中的`fstream`头文件,它提供了`ifstream`(输入文件流)和`ofstream`...

    数字图像处理图像旋转

    ①读入图像文件并把图像转为灰度图像,显示图像,X轴标注为图(a); ②计算图像旋转θ角后的四个顶点坐标(以便确定旋转后的图像大小); ③根据四个顶点坐标,计算移动偏移量△x、△y,移动图像(目的使旋转后的...

    opengl实例读入图片并显示

    这个实例主要涉及如何在OpenGL中读取并显示图片,这对于游戏开发、可视化应用以及其他需要实时渲染图像的项目至关重要。在此过程中,我们还将探讨如何设置和使用OpenGL的灯光效果,这对于创建逼真的视觉效果是必要的...

Global site tag (gtag.js) - Google Analytics