GDI+基础(1)
转载:http://www.cnblogs.com/peterzb/archive/2009/07/19/1526555.html
System.Drawing 命名空间提供了对 GDI+ 基本图形功能的访问
System.Drawing.Drawing2D 命名空间提供高级的二维和矢量图形功能。此命名空间包含梯度型画刷、Matrix 类(用于定义几何变换)和 GraphicsPath 类
System.Drawing.Imaging 命名空间提供高级 GDI+ 图像处理功能
System.Drawing.Text 命名空间提供高级 GDI+ 排版功能
Bitmap类封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。Bitmap 对象是用于处理由像素数据定义的图像的对象
1.属性:
Height 获取此 Image 对象的高度
PixelFormat 获取此 Image 对象的像素格式
Size 获取此图像的以像素为单位的宽度和高度
Width 获取此 Image 对象的宽度
2.方法
Dispose 释放由此 Image 对象使用的所有资源
Save 将此图像以指定的格式保存到指定的流中
SetPixel 设置 Bitmap 对象中指定像素的颜色
示例
<%@ Page ContentType="image/gif" Language="C#" %>
<!--ContentType设置页面类型-->
<%@ Import namespace="System.Drawing" %>
<%@ Import namespace="System.Drawing.Imaging" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(, );
//创建一个宽400,高200的实例
Random pixel = new Random();
//创建一个随机实例
for(int i=;i<;i++) {
bmp.SetPixel(pixel.Next(), pixel.Next(), Color.Red);
//设置 Bitmap 对象中指定像素的颜色,构造函数参数为x,y,color
}
bmp.Save(Response.OutputStream, ImageFormat.Gif);//ImageFormat 对象,它指定保存的图像的格式
//向客户端输出数据流,并以此数据流形成Gif图片
}
</script>
Graphics 类表示封装 GDI+ 绘图面,比如画长方形,圆形等更加复杂的图形.
常用属性和方法:
属性 说明
Clip 获取或设置Region对象,该对象限定此Graphics对象的绘图区域。
ClipBounds 获取RectangleF结构,该结构限定此Graphics对象的剪辑区域。
DpiX 获取此Graphics对象的水平分辨率。
DpiY 获取此Graphics对象的垂直分辨率。
PageScale 获取或设置此Graphics对象的全局单位和页单位之间的比例。
PageUnit 获取或设置用于此Graphics对象中的页坐标的度量单位。
PixelOffsetMode 获取或设置一个值,该值指定在呈现此Graphics对象的过程中像素如何偏移。
RenderingOrigin 为抵色处理和阴影画笔获取或设置此Graphics对象的呈现原点。
SmoothingMode 获取或设置此Graphics对象的呈现质量。
TextRenderingHint 获取或设置与此Graphics对象关联的文本的呈现模式。
Transform 获取或设置此Graphics对象的全局变换。
VisibleClipBounds 获取或设置此Graphics对象的可见剪辑区域的边框。
方法 说明
Clear 清除整个绘图面并以指定背景色填充。
Dispose 释放由此Graphics对象使用的所有资源。
DrawArc 绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分。
DrawEllipse 绘制一个由边框定义的椭圆。
DrawIcon 在指定坐标处绘制由指定的Icon对象表示的图像。
DrawIconUnstretched 绘制指定的Icon对象表示的图像,而不缩放该图像。
DrawImage 在指定位置并且按原始大小绘制指定的Image对象。
DrawImageUnscaled 在坐标对所指定的位置并且按其原始大小绘制指定的Image对象。
DrawLine 绘制一条连接由坐标对指定的两个点的线条。
DrawLines 绘制一系列连接一组Point结构的线段。
DrawPie 绘制一个扇形,该扇形由一个坐标对、宽度和高度以及两条射线所指定的椭圆定义。
DrawPolygon 绘制由一组Point结构定义的多边形。
DrawRectangle 绘制由坐标对、宽度和高度指定的矩形。
DrawRectangles 绘制一系列由Rectangle结构指定的矩形。
DrawString 在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串。
FillClosedCurve 填充由Point结构数组定义的闭合基数样条曲线的内部。
FillEllipse 填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定。
FillPie 填充由一对坐标、一个宽度、一个高度以及两条射线指定的椭圆所定义的扇形区的内部。
FillPolygon
填充Point结构指定的点数组所定义的多边形的内部。
FillRectangle 填充由一对坐标、一个宽度和一个高度指定的矩形的内部。
FillRectangles 填充由Rectangle结构指定的一系列矩形的内部。
FillRegion 填充Region 对象的内部。
Flush 强制执行所有挂起的图形操作并立即返回而不等待操作完成。
FromHdc 从设备上下文的指定句柄创建新的Graphics对象。
FromHwnd 从窗口的指定句柄创建新的Graphics对象。
FromImage 从指定的Image对象创建新Graphics对象。
GetHdc 获取与此Graphics对象关联的设备上下文的句柄。
ReleaseHdc 释放通过以前对此Graphics对象GetHdc方法的调用获得的设备上下文句柄。
ResetClip 将此Graphics对象的剪辑区域重置为无限区域。
ResetTransform 将此Graphics对象的全局变换矩阵重置为单位矩阵。
画一个矩形
DrawRectangle 绘制由坐标对、宽度和高度指定的矩形
public void DrawRectangle(Pen, int, int, int, int);
绘制由坐标对、宽度和高度指定的矩形
<%@ Page ContentType="image/gif" Language="C#" %>
<!--ContentType设置页面类型-->
<%@ Import namespace="System.Drawing" %>
<%@ Import namespace="System.Drawing.Imaging" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(, );
//创建一个宽400,高200的实例
Graphics gph;
//从指定的Image对象创建新Graphics对象
gph = Graphics.FromImage(bmp);
//清除整个绘图面并以指定背景色填充
gph.Clear(Color.Olive);
//绘制由坐标对、宽度和高度指定的矩形
gph.DrawRectangle(Pens.Red, , , , );
//填充由笔刷颜色,一对坐标、一个宽度和一个高度指定的矩形的内部
gph.FillRectangle(Brushes.Green, , , , );
bmp.Save(Response.OutputStream, ImageFormat.Gif);//ImageFormat 对象,它指定保存的图像的格式
//向客户端输出数据流,并以此数据流形成Gif图片
}
</script>
使用颜色
Color 结构表示 ARGB 颜色
颜色包含a,R,G,B
Color mycolor;
mycolor = Color.FromName("blue");
//FromName方法把颜色字符串换成GDI+颜色
mycolor = Color.FromArgb(255, 0, 0);
//FromArgb方法设置RGB值
mycolor = Color.FromArgb(100,255, 0, 0);
//FromArgb方法设置a,RGB值
用ColorTranslator类在HTML颜色和GDI+颜色之间转换
mycolor = ColorTranslator.FromHtml("#00FF00");
使用画笔
Brush 类用于填充图形形状(如矩形、椭圆形、扇形、多边形和封闭路径)内部的对象
System.Drawing.Drawing2D.HatchBrush 用阴影样式、前景色和背景色定义矩形画笔
System.Drawing.Drawing2D.LinearGradientBrush 使用线性渐变封装 Brush 对象
System.Drawing.Drawing2D.PathGradientBrush 封装 Brush 对象,它通过渐变填充 GraphicsPath 对象的内部
System.Drawing.SolidBrush 定义单色画刷
System.Drawing.TextureBrush 使用图像来填充形状的内部
PathGradientBrush类似LinearGradientBrush,但更加强大,不再介绍.
下面示例
<%@ Page ContentType="image/gif" Language="C#" %>
<!--ContentType设置页面类型-->
<%@ Import namespace="System.Drawing" %>
<%@ Import namespace="System.Drawing.Imaging" %>
<%@ Import namespace="System.Drawing.Drawing2D" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(, );
//创建一个宽400,高200的实例
Bitmap img=new Bitmap(Server.MapPath("001.jpg"));
Color mycolor;
mycolor = Color.FromArgb(, , );
//FromArgb方法设置RGB值
Rectangle rect=new Rectangle(,,,);
SolidBrush solid = new SolidBrush(mycolor);
//实心颜色填充
HatchBrush hatch = new HatchBrush(HatchStyle.Cross, Color.Orange);
//阴影模式填充,从HatchStyle属性中选择样式
LinearGradientBrush linear;
linear = new LinearGradientBrush(rect, Color.Red, Color.Yellow, LinearGradientMode.ForwardDiagonal);
//渐变色填充,构造函数参数为(Rectangle, Color, Color, LinearGradientMode)
//一个矩形,起点颜色,结束色,指定如何呈现渐变;
//BackwardDiagonal 指定从右上到左下的渐变。
//ForwardDiagonal 指定从左上到右下的渐变。
//Horizontal 指定从左到右的渐变。
//Vertical 指定从上到下的渐变。
TextureBrush texture = new TextureBrush(img);
//以图片填充图形
Graphics gph;
//从指定的Image对象创建新Graphics对象
gph = Graphics.FromImage(bmp);
//清除整个绘图面并以指定背景色填充
gph.Clear(Color.Red);
//绘制由坐标对、宽度和高度指定的矩形
//填充由一对坐标、一个宽度和一个高度指定的矩形的内部
gph.FillRectangle(Brushes.Green, , , , );
gph.FillRectangle(solid, , , , );
gph.FillRectangle(hatch, , , , );
gph.FillRectangle(linear, rect);
gph.FillRectangle(texture, , , , );
bmp.Save(Response.OutputStream, ImageFormat.Gif);//ImageFormat 对象,它指定保存的图像的格式
//向客户端输出数据流,并以此数据流形成Gif图片
}
</script>
GDI+基础(1)的更多相关文章
- GDI基础(3):绘制图片
1.CBitmap位图类封装了Windows GDI中的位图和操作位图的成员函数.CPen.CBrush.CFont.CBitmap是常用的Windows GDI对象,和CFont一样,CBitmap ...
- 《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第一节:画直线
今天正式开一本新书,<C# GDI+ 破镜之道>,同样是破镜之道系列丛书的一分子. 关于GDI+呢,官方的解释是这样的: GDI+ 是 Microsoft Windows 操作系统的窗体子 ...
- 《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第二节:画矩形
有了上一节画线的基础,画矩形的各种边线就特别好理解了,所以,本节在矩形边线上,就不做过多的讲解了,关注一下画“随机矩形”的具体实现就好.与画线相比较,画矩形稍微复杂的一点就是在于它多了很多填充的样式. ...
- C#GDI+基础(三)画刷详解
SolidBrush:一般的画刷,通常只用一种颜色去填充GDI+图形 创建一般画刷: SolidBrush sbBrush1 = new SolidBrush(Color.Green); HatchB ...
- Win32 GDI基础(笔记)
1.GDI名字的意义 GDI Graphic Device Interface,我说不清和GUI有什么区别.可能一种针对设备,一种针对用户而言吧,反正以后都说GDI,也就是Windows的图形编程. ...
- GDI基础(1):绘制线条和图形
1. 绘制一个像素点:SetPixel(). 绘制直线:MoveTo(),LineTo(). 绘制多个首尾相连的线:Polyline(). 绘制矩形:FrameRect(),Rectangle(),F ...
- 《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第三节:画圆形
有了上一节画矩形的基础,画圆形就不要太轻松+EZ:)所以,本节在画边线及填充上,就不做过多的讲解了,关注一下画“随机椭圆”.“正圆”.“路径填充”的具体实现就好.与画矩形相比较,画椭圆与之完全一致,没 ...
- VC GDI+基础用法VC
#include "GdiPlus.h" // 使用GDI+ 命名空间 using namespace Gdiplus; // 与GDI+ 相关的其它头文件,如:GraphicsP ...
- GDI+基础(3)
常用图形绘制 <%@ Page ContentType="image/gif" Language="C#" %> <!--ContentTyp ...
随机推荐
- C语言笔记(数组地址一些细节)
一.数组的a+1和&a+1的区别 先看看测试代码: ]={}; printf(" sizeof(data) = %d.\n", sizeof(data)); printf ...
- C语言基础文件读写操作
整理了一份C语言的文件读写件操作代码,测试时打开相应的注释即可. #include <stdio.h> #include <stdlib.h> #include <uni ...
- 网络流的一个很厉害的ppt
链接: http://pan.baidu.com/s/1dECtMpz 密码: hdbm
- cms中if标签的使用
<#if order.EnFriendly ?? && order.EnFriendly==1> <td class="text-center"& ...
- Javascript图片轮播
原文链接:http://www.imooc.com/article/7393 编辑HTML代码: <div id="wrap"><!--图片展示区--> & ...
- Forms & HTML 组件 - laravelcollective/html
简书链接 :Forms & HTML 组件 - laravelcollective/html 安装 方法一: composer require laravelcollective/html 方 ...
- Egret 文本处理
常规处理: private createGameScene():void { var shp = new egret.Shape(); shp.graphics.beginFill(0xff0000, ...
- Logger之Logger.getLogger(CLass)
之前一直在使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 在项目中 ...
- ecilipse Javadoc文档注释
— 标签 @param @param 空格后面跟上形参(不是数据类型)空格后跟着对该参数的描述. 在描述中第一个名字为该变量的数据类型 对于参数的描述是一个句子,最好不要首字母大写, 如果出现了句号这 ...
- 简单的猜数字(JAVA版)
按书上的样例来操作的. 不过,书上提到的BUG,我没有在看下一章时就解决了哈.. 从网上查找的删除数组元素的方法. 其实,将数据结构更改为ARRAYLIST,可能更简单.:) GameHelper.j ...