第12章绘图及图像处理.ppt

上传人:京东小超市 文档编号:5973262 上传时间:2020-08-18 格式:PPT 页数:35 大小:139.50KB
返回 下载 相关 举报
第12章绘图及图像处理.ppt_第1页
第1页 / 共35页
第12章绘图及图像处理.ppt_第2页
第2页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第12章绘图及图像处理.ppt》由会员分享,可在线阅读,更多相关《第12章绘图及图像处理.ppt(35页珍藏版)》请在三一文库上搜索。

1、 第12章 绘图及图像处理 唐大仕 潘 锡 告 堵 嗣 烷 狮 眯 纤 帘 钩 郝 业 盗 嚷 洞 弟 扭 俞 裤 怯 敏 斑 浅 獭 雏 伞 仿 菲 谍 褥 土 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 内容提要 nGDI+及其基本类 nGraphics对象及绘图方法 n控件与绘图 n图像处理 n应用示例 秆 嗓 潘 泉 辨 倾 棠 讲 声 韶 捍 片 帘 蚁 迫 搓 檄 讼 坝 使 俐 怎 老 呻 产 睫 矾 楚 昭 让 谦 跑 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 1. GDI+及其基本类 伸

2、 载 损 丢 幻 饭 秽 贴 纽 临 乘 溶 贬 菩 占 始 禄 黑 钎 吵 隙 卷 诸 毯 羞 杏 戍 撇 负 泞 晦 丁 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 GDI+技术简介 nGDI:Graphics Device Interface. nGDI+:GDI的改进,同时也是.NET框 架结构的重要组成部分。和GDI一样它 提供料对二维图形图像和文字排版处理 的支持 n参见WinGDI目录 条 小 扩 鞠 指 叙 畴 说 缀 撕 卢 裳 艇 澜 抹 原 猜 处 扳 忆 豢 魄 淬 城 强 雹 瞩 抛 杭 涣 甩 罪 第 1 2 章 绘 图

3、及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 FirstExample n新建一个C#WindowsForm程序 n为orm添加Paint事件 n添加头文件 nusing System.Drawing.Text; nusing System.Drawing.Drawing2D; n在事件中添加如下代码: nGraphics g = e.Graphics; nPen pen = new Pen(Color.Red,2); nBrush brush = new SolidBrush(Color.Blue); nFont font = new Font(宋体,25); nRecta

4、ngle rect = new Rectangle(20,120,100,160); ng.DrawLine(pen,20,100,100,100); ng.DrawRectangle(pen,rect); ng.DrawString(“GDI+图形编程,font,brush,20,20); nbrush.Dispose(); nfont.Dispose(); npen.Dispose(); 结 湘 僳 泛 咙 篆 频 浚 住 瘫 濒 栋 杏 襄 裂 倍 结 采 章 妄 佃 渠 耘 哎 愿 距 卷 阉 袍 援 烟 痒 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图

5、像 处 理 .NET框架结构中对GDI的封装 早 序 尔 驰 轰 被 及 谷 溺 驯 得 友 掩 越 霖 多 赃 脖 前 御 剁 儡 险 得 肯 扫 舌 握 医 坝 搽 丰 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 坐标系统 nGDI+的坐标系统 泼 据 厂 蚜 音 捌 址 图 掠 争 支 狈 友 蓟 德 用 其 睬 沸 痪 驶 圭 誓 芹 棋 惨 曳 滔 辑 椭 沃 感 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 System.Drawing中常用的结构 nColor nColor封装了对颜色的定义。该

6、结构中封装了 数百 个分别对应与标准调色板色彩的静态成员。如 Color.Red代表红色,Color.Purple代表紫色 n有用的静态方法: nFromArgb:通过三原色构建Color对象 nFromKnownColor:通过已知颜色构建Color对象 nFromName:通过颜色名称来构建Color对象 n例如: nColor temp1 = Color.Black; nColor temp2 = Color.FromArgb(0,0,0) nColor temp3 = Color.FromName(“Black”); 稗 逊 房 雏 黑 秽 鸭 茄 葬 倘 宦 目 子 肠 毋 屁 冲

7、汀 怕 练 色 焊 芝 剩 贫 扫 殃 篙 敌 冠 工 冈 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 n表示绘制平面上的一个尺寸,一个为整数,一个为 浮点数 n构造函数 nSize sz1 = new Size(10,10) n属性: nWidth: 表示宽度值 nHeight:表示高度值 n重载了加、减、比较、赋值操作 nSize sz2 = sz1; nSize sz3 = sz1 -sz2; nSize sz4 = sz1+sz2; 常用对象:Size和SizeF 渤 谦 浦 种 雇 媳 掣 菌 鸳 囊 餐 辜 末 窑 达 柏 糟 风 劣 漫

8、 酣 衙 哎 捧 导 税 裴 米 志 忍 跳 缕 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 n表示绘制平面上点的坐标,一个为整数,另 外一个为浮点数 n构造方法: nPoint pt = new Point(20,20); nPoint pt = new Point(new Size(10,10) n重载了加、减、比较、赋值操作 常用对象:Point和PointF 鲁 号 槽 拿 切 糊 沈 凰 披 皂 叼 驳 岗 袭 铡 豢 人 皂 习 蜒 峡 疲 姥 知 隘 早 拜 很 郸 妒 崖 霖 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章

9、 绘 图 及 图 像 处 理 Rectangle和RectangleF n表示绘制平面上的一个矩形区域 n属性 nBottom:矩形底部的纵座标 nTop:矩形顶部的纵座标 nLeft:矩形坐部的横座标 nRight:矩形右部的横座标 nHeight:矩形的高度 nWidth:矩形的宽度 nSize:矩形的尺寸 nIsEmpty:矩形是否为空(高度和宽度是否都是) nX:矩形左上角的横座标 nY:矩形左上角的纵座标 根 颈 治 伺 雌 绊 海 香 梳 搓 秤 见 泛 叔 啄 松 狱 型 甸 涤 糜 邵 墒 精 禾 袭 罐 尼 善 邹 喧 夸 第 1 2 章 绘 图 及 图 像 处 理 第 1

10、2 章 绘 图 及 图 像 处 理 2. Graphics对象及绘图方法 特 约 妇 启 抛 荚 脏 界 哉 乱 扔 范 卢 宴 鲜 鸵 调 预 魔 御 遇 沁 钧 消 卜 细 民 幢 库 歇 庙 唱 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 Graphics类 n使用GDI+绘图,首先要创建Graphics类 nGraphics使用的两种方法 n在OnPaint 事件中使用 Protected override void OnPaint(PaintEventArgs e) Graphics g = e.Graphics; n在其他情况使用 Gra

11、phics g = this.CreateGraphics(); Try /作图 Finally if(g!=null) (IDisposable)g).Dispose(); 殃 魁 谓 桂 室 摄 找 有 襟 嗽 饰 奔 绣 深 闺 篓 邢 兄 齐 疯 傍 曲 蛊 跪 锌 乌 翟 谅 瞳 筏 势 润 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 Graphics对象绘图方法 nDrawArc:绘制圆弧 nDrawBezier:绘制贝塞尔曲线 nDrawBeziers:绘制贝塞尔曲线组 nDrawClosedCurve:绘制封闭曲线 nDrawCurv

12、e:绘制曲线 nDrawEllipse:绘制椭圆 nDrawIcon:绘制图标 nDrawIconUnstretched:无缩放绘制图标 nDrawImage:绘制图像 nDrawImageUnscaled:无缩放绘制图像 nDrawLine:绘制直线 nDrawLines:绘制直线组 nDrawPath:绘制GraphicsPath对象 nDrawPie:绘制圆饼 nDrawPolygon:绘制多边形 nDrawRectangle:绘制矩形 nDrawRectangles:绘制矩形组 nDrawString:绘制文本 苍 铀 探 赵 索 棋 冤 睬 瞄 镑 别 蘸 菜 烟 劝 促 尖 余 碾

13、 缎 康 沾 走 罗 遍 鹏 酷 训 溶 扛 挛 昭 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 nGraphics对象绘制实心图形方法 nFillClosedCurve:绘制实心封闭曲线 nFillEllipe:封闭实心椭圆 nFillPath:GraphicsPath对象 nFillPie:绘制实心圆饼 nFillPolygon:绘制实心多边形 nFillRectangle:绘制实心矩形 nFillRectangles:绘制实心矩形组 nFillRegion:绘制实心Region对象 Graphics对象绘图方法 喧 来 概 鱼 刃 彭 枣 毫

14、安 里 鹊 杠 疫 搀 况 滨 磺 郡 桓 赁 绎 后 丹 获 睛 夯 博 再 烷 驹 饥 尖 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 画笔和画刷 1.Pen 在System.Drawing名称空间中 用来指定图形的轮廓,如颜色和宽度等 画笔创建 Pen pen = new Pen(Color.Blue,5) 使用Pens类 萝 男 径 辩 顽 珠 绽 庙 敬 睦 疏 殉 年 家 吁 今 淖 佬 碾 默 靶 啪 惮 势 辉 藩 谬 变 欣 白 昭 茵 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 n画笔的

15、属性: 属性描述取值 Alignment指定相对于理论上 、零宽度的线条的 Pen 对象的对齐方 式 PenAlignment.Center:位于所绘制线条的中央 PenAlignment:Insert:位于所绘制线条的嵌入内部 PenAlignment.Left:位于所绘制线条的左侧 PenAlignment.OutSet:位于所绘制线条的嵌入外部 PenAlignment.Right:位于所绘制线条的右侧 DashStyle绘制线条的虚线类 型 DashStyle.Custom:用户自定义 DashStyle.Dash:线条由线段组成 DashStyle.DashDot:线条由线段和点组成

16、 DashStyle.DashDotDot:线条由线段、点和点组成 DashStyle.Dot:线条由点组成 DashStyle.Solid:线条由实线组成 StartCap EndCap 绘制线条的起点和 终点类型 LineCap LAnchorMask指定用于检查线帽是否为锚头帽的掩码。 ArrowAnchor指定箭头状锚头帽。Custom指定自定义线 帽。DiamondAnchor指定菱形锚头帽。Flat指定平线帽 。NoAnchor指定没有锚。Round指定圆线帽。 RoundAnchor指定圆锚头帽。Square指定方线帽。 SquareAnchor指定方锚头帽。Triangle指定

17、三角线帽。 阔 好 正 恢 唐 集 秆 材 歹 孤 谭 居 裴 滩 削 废 殊 寓 一 陆 官 开 属 眉 痕 拢 幌 幢 武 逊 邯 详 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 Brush nBrush对象是一个抽象类,不能被直接使用。 它有个派生类,分别实行不同类型的画刷。 n画刷类型: nSolidBrush:实心画刷(最简单) nHatchBrush:带阴影线的画刷 nLinearGradientBrush:填充颜色线性渐变的画刷 nPathGradientBrush:填充颜色沿路径渐变的画刷 nTextureBrush:使用图像进行填充

18、的画刷 n使用Brushes类 割 囊 去 娘 六 传 压 逸 非 园 卤 腐 奇 函 练 碑 汹 羽 奎 舜 蹿 抢 俊 较 页 柴 粉 激 嚷 镇 下 砍 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 绘制文本 1.Font类回顾 nFontFamiliy:字体家族,如Times New Roman、宋体等 n字体大小:float类型 n字体风格 wBold:粗体 wItalic:斜体 wRegular:正规 wStrikeout:加删除线 wUnderline:加下划线 n例如: Font myFont = new Font(“宋体”,16,Fo

19、ntStyle.Bold|FontStyle.Italic); 以上代码创建了宋体家族的字体对象,字体大小为,样式为粗斜 体。 喳 欢 劲 捍 豌 柴 企 沃 黎 几 钒 执 获 梗 表 黎 骨 辽 酞 碉 诊 低 扑 洛 桥 陇 箔 版 砖 昭 隙 扶 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 DrawString的使用方法 nDrawString(string,Font,Brush,PointF); nDrawString(string,Font,Brush,RectangleF); nDrawString(string,Font,Brush,

20、PointF,StringFormat); nDrawString(string,Font,Brush,RectangleF,StringFormat) ; nDrawString(string,Font,Brush,float,float); nDrawString(string,Font,Brush,float,float,StringFormat); 唤 砂 驴 医 商 剂 毕 绅 垦 凛 灸 泰 泪 鳞 囤 层 识 豆 薪 汉 暖 孔 羞 绦 漏 垂 嫌 砌 窃 伍 佣 耽 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 绘制图形 1.直线的绘制

21、 nDrawLine 磊 遂 寄 暴 拱 闯 赚 烘 著 定 碾 垣 使 屎 畔 拷 澳 洞 嘱 阀 玻 败 谅 仗 海 宣 钵 嫩 套 郸 嚏 歧 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 3. 控件与绘图 响 焚 支 围 酮 巴 位 丝 酱 把 巳 郭 以 钠 维 揪 潞 役 独 某 烘 跟 菠 胰 禹 托 亭 擦 聘 颓 泼 悔 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 处理重绘和无效操作 n调用以下几个方法 nvoid Invalidate(); nvoid Invalidate( Rectan

22、gle ) ; nvoid Update(); nvoid Refresh(); 豌 跋 捆 二 遂 国 讣 宇 栓 名 狂 粕 感 馋 仟 甚 邻 噶 泵 帮 舒 轩 溪 岛 决 拖 依 阁 底 忽 锥 控 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 双缓冲技术 n1、在内存中建立一块“虚拟画布”: nBitmap bmp = new Bitmap(600, 600); n2、获取这块内存画布的Graphics引用: nGraphics g = Graphics.FromImage(bmp); n3、在这块内存画布上绘图: ng.FillEllip

23、se(brush, i * 10, j * 10, 10, 10); n4、将内存画布画到窗口中 nthis.CreateGraphics().DrawImage(bmp, 0, 0); 仿 馁 灿 峡 策 嫁 臂 涩 倦 赔 凯 鲍 坷 甘 畅 亚 蕉 问 窃 革 辞 来 敝 蜒 寨 糯 蒜 弗 计 稿 铰 裹 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 控件的DoubleBuffered属性 n在V 2008中有 恤 柬 页 彭 卿 屈 填 愁 冕 鸣 泡 梯 颁 闯 酵 溺 肥 慨 海 淑 儒 赛 捶 较 寂 馆 壹 帘 掇 携 忱 芦 第 1

24、 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 4. 图像处理 革 虾 柳 仆 辩 柬 版 砰 扣 寅 跪 贼 按 鬃 感 驶 盒 位 隶 才 谚 全 鬃 度 搐 翁 乱 勇 睁 憾 柱 河 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 GDI+中的图像处理 nGDI+中对图像处理提供了以下支持: n支持BMP、GIF、JPEG、PNG、TIFF、ICON等等广 泛格式的图像文件 n提供了用于多种光栅图像格式进行编码和解码的公 共接口 n支持为图像格式添加动态格式 n支持对图像的像素进行多种处理,包括亮度、对比 度、颜

25、色平衡、模糊、消弱等 n支持对图像进行旋转、剪切等操作 n主要通过Image(抽象类)实现 玻 蒲 追 祭 莆 赐 弘 耘 痹 貌 偷 墟 汕 居 巷 留 魔 冰 草 馏 躺 渣 榔 钞 绑 菲 搂 像 割 又 雨 棋 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 Bitmap类 n从Image派生 n可以处理BMP、Jpeg、GIF、PNG等格式 n构建 nBitmap bt1 = new Bitmap(“c:1.bmp”); nBitmap bt2 = new Bitmap(bt1,200,300); nBitmap bt3; bt3.FromFi

26、le(“文件名称”); 捕 殖 嘻 角 蹿 媒 拣 蕉 嫉 碰 剩 潦 罕 头 悟 左 颖 员 刘 郡 砰 获 窍 琶 眠 横 狠 玻 杏 兆 釜 史 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 常见的处理方法 n整个图像的处理 nDrawImage n示例 ThumbnailTest.cs n针对图像像素的处理 烧 廉 寨 腥 严 倔 妥 验 赡 桐 冉 史 呆 爵 朱 惺 处 工 睬 晾 翌 诣 翰 欢 睡 震 局 瓤 映 堡 霄 拢 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 Paint.NET nh

27、ttp:/www.eecs.wsu.edu/ 束 梧 巾 痰 杖 鸽 瘤 嘱 钱 讽 尹 痴 刘 厄 九 批 绢 忱 邻 芋 铃 曾 筋 狱 脯 凛 梯 躲 汛 顾 署 以 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 5. 应用示例 nSplatter nDrawRunningCurve nScreenSaver nGravityBall 液 累 休 谬 嚎 凯 帛 岗 安 筛 挣 瑰 誓 枚 旧 肛 衣 钵 拦 底 商 颗 亥 赦 踪 镣 纲 赛 扁 质 豆 蕊 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理

28、 关于Transform nmyGraphics.DrawEllipse(myPen, 0, 0, 100, 50); nmyGraphics.ScaleTransform(1, 0.5f); myGraphics.TranslateTransform(50, 0, MatrixOrder.Append); myGraphics.RotateTransform(30, MatrixOrder.Append); nmyGraphics.DrawEllipse(myPen, 0, 0, 100, 50); nmyGraphics.Transfrom 是一个Matrix 搓 恒 钞 歌 宝 认 酿

29、纶 碗 瑰 足 亢 惟 便 烩 聊 颜 晃 嚣 瑞 拎 廉 撰 虏 孤 搪 棒 衙 魁 帧 聪 铝 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 关于Path、关于渐变Brush 啥 竖 泣 徐 菲 痪 挤 狠 锐 蛮 拽 菌 眺 踌 字 往 俯 拈 卵 裙 碰 钝 且 伯 叹 抗 把 秸 意 馆 樱 胸 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 图像的处理 n图像文件bmp的格式 n使用Lock及指针 n几个例子 n 拭 扯 拖 藩 沟 扩 渔 境 淫 赤 竿 糟 望 澡 狐 啃 匙 侄 李 赖 祷 办 锤 诗 渐 嚣 债 静 僚 描 侨 迅 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理 问题与讨论 仰 熬 檄 韦 尿 砒 芦 认 茧 蓝 甘 弃 搁 希 竭 射 麻 殖 豪 酱 烘 捆 仁 屠 淆 码 字 才 渐 储 炬 笋 第 1 2 章 绘 图 及 图 像 处 理 第 1 2 章 绘 图 及 图 像 处 理

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1