C#中Graphics的画图代码【转】

架上图片了你就可以在画板上涂改了啊

我要写多几个字上去
string str = "Baidu"; //写什么字?
Font font = Font("宋体",30f); //字是什么样子的?
Brush brush = Brushes.Red; //用红色涂上我的字吧;
PointF point = new PointF(10f,10f); //从什么地方开始写字捏?

//横着写还是竖着写呢?
System.Drawing.StringFormat sf = new System.Drawing.StringFormat();
//还是竖着写吧
sf.FormatFlags = StringFormatFlags.DirectionVertical

//开始写咯
g.DrawString(str,font,brush,point,sf);

//写好了,我要把我的作品收藏起来

image.Save("C:\\1.jpg");

——————————————————————————————————————————————

分割线哥哥

———————————————————————————————————————————————

System.Drawing.Graphics graphicsobj;

GraphicsObj = this.CreateGraphics();//e.Graphics在Form1_Paint中可以用
Pen myPen = new Pen(system.Drawing.Color.Red,5);

//x1,y1,x2,y2

GraphicsObj.DrawLine(myPen,20,20,200,210);//画直线,斜线(x1,y1,x2,y2,起点横纵坐标,终点横纵坐标)

GraphicsObj.DrawRectangle(myPen,20,20,30,30);//画矩形

GraphicsObj.DrawEllipse(myPen,20,20,50,50)//画圆,椭圆

GraphicsObj.FillEllipse(myPen,20,20,50,50)//画实心圆,实心椭圆

GraphicsObj.DrawPie(myPen,90,80,140,40,120,100); //画馅饼图形 //画多边形

myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;//虚线笔
GraphicsObj.DrawLine(myPen,10,60,100,60);
myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;//点,短线风格的线
GraphicsObj.DrawLine(myPen, 10, 70, 100, 70);
myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot;//双点,短线风格的线
GraphicsObj.DrawLine(myPen, 10, 80, 100, 80);
myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;//由点组成的线
GraphicsObj.DrawLine(myPen, 10, 90, 100, 90);
myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;//实线笔

myPen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;//后箭头
GraphicsObj.DrawLine(myPen,150,50,250,50);

myPen.StartCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;//前箭头
GraphicsObj.DrawLine(myPen,150,70,250,70);

myPen.EndCap = System.Drawing.Drawing2D.LineCap.RoundAnchor;//一条线,终点是圆点
GraphicsObj.DrawLine(myPen, 150, 90, 250, 90);

myPen.EndCap = System.Drawing.Drawing2D.LineCap.SquareAnchor;//一条线,终点是方点
GraphicsObj.DrawLine(myPen, 150, 110, 250, 110);
myPen.EndCap = System.Drawing.Drawing2D.LineCap.Triangle;//一条线,终点是三角形向后
GraphicsObj.DrawLine(myPen, 150, 130, 250, 130);
myPen.EndCap = System.Drawing.Drawing2D.LineCap.DiamondAnchor;//一条线,终点是菱形
GraphicsObj.DrawLine(myPen, 150, 150, 250, 150);

易一幅图作椭圆的背景:

Image bgimage = new Bitmap("E:2065215396.jpg");
Brush brush = new TextureBrush(bgimage); //易一幅图作椭圆的背景
g.FillEllipse(brush,50,50,500,300);

——————————————————————————————————————————————

华丽的分割线

——————————————————————————————————————————————

文本文档的实现:

System.Drawing.Graphics graphicsobj;

GraphicsObj = this.CreateGraphics();

Font myFont=new System.Drawing.Font("Helvetica",30,Font Style.Italic);

Brush myBrush=new SolidBrush(System.Drawing.Color.Red);//画刷

graphicsPbj.DrawString("Hello C#",myFont,myBrush,30,30);

———————————————————————————————————————————————

华丽的分割线妹妹

———————————————————————————————————————————————

graphics方法-属性

名称

说明

Clip 获取或设置 Region,该对象限定此 Graphics 的绘图区域。

ClipBounds 获取一个 RectangleF 结构,该结构限定此 Graphics 的剪辑区域。

CompositingMode 获取一个值,该值指定如何将合成图像绘制到此 Graphics。

CompositingQuality

获取或设置绘制到此 Graphics 的合成图像的呈现质量。

DpiX 获取此 Graphics 的水平分辨率。
DpiY 获取此 Graphics 的垂直分辨率。

InterpolationMode 获取或设置与此 Graphics 关联的插补模式。

IsClipEmpty 获取一个值,该值指示此 Graphics 的剪辑区域是否为空。

IsVisibleClipEmpty 获取一个值,该值指示此 Graphics 的可见剪辑区域是否为空。

PageScale 获取或设置此 Graphics 的全局单位和页单位之间的比例。

PageUnit 获取或设置用于此 Graphics 中的页坐标的度量单位。

PixelOffsetMode 获取或设置一个值,该值指定在呈现此 Graphics 的过程中像素如何偏移。

RenderingOrigin 为抵色处理和阴影画笔获取或设置此Graphics 的呈现原点。

SmoothingMode 获取或设置此 Graphics 的呈现质量。

TextContrast 获取或设置呈现文本的灰度校正值。

TextRenderingHint 获取或设置与此 Graphics 关联的文本的呈现模式。

Transform

获取或设置此Graphics 的世界变换。

VisibleClipBounds 获取此 Graphics 的可见剪辑区域的边框。

graphics方法-方法

名称

说明

AddMetafileComment

向当前 Metafile 添加注释。

BeginContainer

保存具有此 Graphics 的当前状态的图形容器,然后打开并使用新的图形容器。可重载。

Clear

清除整个绘图面并以指定背景色填充。

CopyFromScreen

执行颜色数据从屏幕到 Graphics 的绘图图面的位块传输。可重载。

CreateObjRef

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (从 MarshalByRefObject 继承。)

Dispose

释放由Graphics使用的所有资源。

DrawArc

绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分。可重载。

DrawBezier

绘制由4个Point 结构定义的贝塞尔样条。可重载。

DrawBeziers

用 Point 结构数组绘制一系列贝塞尔样条。可重载。

DrawClosedCurve

绘制由 Point 结构的数组定义的闭合基数样条。可重载。

DrawCurve

绘制经过一组指定的 Point 结构的基数样条。可重载。

DrawEllipse

绘制一个由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆。可重载。

DrawIcon

在指定坐标处绘制由指定的 Icon 表示的图像。可重载。

DrawIconUnstretched

绘制指定的 Icon 表示的图像,而不缩放该图像。

DrawImage

在指定位置并且按原始大小绘制指定的 Image。可重载。

DrawImageUnscaled

在由坐标对指定的位置,使用图像的原始物理大小绘制指定的图像。可重载。

DrawImageUnscaled AndClipped
在不进行缩放的情况下绘制指定的图像,并在需要时剪辑该图像以适合指定的矩形。

DrawLine

可重载。绘制一条连接由坐标对指定的两个点的线条。

DrawLines

可重载。绘制一系列连接一组Point结构的线段。

DrawPath

绘制GraphicsPath。

DrawPie

可重载。绘制一个扇形,该形状由一个坐标对、宽度、高度以及两条射线所指定的椭圆定义。

DrawPolygon

可重载。绘制由一组 Point 结构定义的多边形。

DrawRectangle

可重载。绘制由坐标对、宽度和高度指定的矩形。

DrawRectangles

绘制一系列由 Rectangle 结构指定的矩形。可重载。

DrawString

在指定位置并且用指定的Brush 和Font对象绘制指定的文本字符串。可重载。

EndContainer

关闭当前图形容器,并将此Graphics的状态还原到通过调用BeginContainer方法保存的状态。

EnumerateMetafile

将指定Metafile中的记录逐个发送到回调方法以在指定的点处显示。可重载。

Equals

已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。)

ExcludeClip

更新此Graphics的剪辑区域,以排除Rectangle结构所指定的区域。可重载。

FillClosedCurve

填充由 Point 结构数组定义的闭合基数样条曲线的内部。可重载。

FillEllipse

填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定。可重载。

FillPath

填充 GraphicsPath 的内部。

FillPie

填充由一对坐标、一个宽度、一个高度以及两条射线指定的椭圆所定义的扇形区的内部。可重载。

FillPolygon

可重载。 填充 Point 结构指定的点数组所定义的多边形的内部。

FillRectangle

填充由一对坐标、一个宽度和一个高度指定的矩形的内部。可重载。

FillRectangles

填充由 Rectangle 结构指定的一系列矩形的内部。可重载。

FillRegion

填充Region的内部。

Flush

强制执行所有挂起的图形操作并立即返回而不等待操作完成。可重载。

FromHdc

从设备上下文的指定句柄创建新的Graphics。可重载。

FromHdcInternal

返回指定设备上下文的Graphics。

FromHwnd

从窗口的指定句柄创建新的Graphics。

FromHwndInternal

创建指定 Windows 句柄的新Graphics。

FromImage

从指定的Image创建新的Graphics。

GetHalftonePalette

获取当前Windows的半色调调色板的句柄。

GetHashCode

用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。)

GetHdc

获取与此Graphics关联的设备上下文的句柄。

GetLifetimeService

检索控制此实例的生存期策略的当前生存期服务对象。 (从 MarshalByRefObject 继承。)

GetNearestColor

获取与指定的Color结构最接近的颜色。

GetType

获取当前实例的 Type。 (从 Object 继承。)

InitializeLifetimeService 获取控制此实例的生存期策略的生存期服务对象。 (从 MarshalByRefObject 继承。)

IntersectClip

将此Graphics的剪辑区域更新为当前剪辑区域与指定 Rectangle 结构的交集。可重载。

IsVisible

指示由一对坐标指定的点是否包含在此 Graphics 的可见剪辑区域内。可重载。

MeasureCharacterRanges

获取Region对象的数组,其中每个对象将字符位置的范围限定在指定字符串内。

MeasureString
测量用指定的 Font 绘制的指定字符串。可重载。

MultiplyTransform

将此 Graphics 的世界变换乘以指定的 Matrix。可重载。

ReferenceEquals

确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。)

ReleaseHdc

释放通过以前对此 Graphics 的 GetHdc 方法的调用获得的设备上下文句柄。可重载。

ReleaseHdcInternal

释放设备上下文的句柄。

ResetClip

将此 Graphics 的剪辑区域重置为无限区域。

ResetTransform

将此 Graphics 的世界变换矩阵重置为单位矩阵。

Restore

将此 Graphics 的状态还原到 GraphicsState 表示的状态。

RotateTransform

将指定旋转应用于此 Graphics 的变换矩阵。可重载。

Save

保存此 Graphics 的当前状态,并用 GraphicsState 标识保存的状态。

ScaleTransform

将指定的缩放操作应用于此 Graphics 的变换矩阵,方法是将该对象的变换矩阵左乘该缩放矩阵。可重载。

SetClip

将此 Graphics 的剪辑区域设置为指定 Graphics 的 Clip 属性。可重载。

ToString

返回表示当前 Object 的 String。 (从 Object 继承。)

TransformPoints

使用此 Graphics 的当前世界变换和页变换,将点数组从一个坐标空间转换到另一个坐标空间。可重载。

TranslateClip

将此 Graphics 的剪辑区域沿水平方向和垂直方向平移指定的量。可重载。

TranslateTransform

通过使此Graphics的变换矩阵左乘指定的平移来更改坐标系统的原点。可重载。

——————————————————————————————————————————————

分割线姐姐

——————————————————————————————————————————————

实例:将一个图片覆盖到另一个图片(中心部分)上。

进入button_Click事件,写入代码:

Image image = Image.FromFile(@"C:\Documents and Settings\Administrator\桌面\11.bmp");

{

Bitmap oldBmp = new Bitmap(@"C:\Documents and Settings\Administrator\桌面\11.bmp");//背景图片
                Bitmap bmp = new Bitmap(@"C:\Documents and Settings\Administrator\桌面\1气管 镜.jpg");//嵌入图片
                Graphics grap = Graphics.FromImage(oldBmp);//得到背景图片的画布
                Rectangle oldRect = new Rectangle(90,80,302,228);//背景图片需要被覆盖的部分
                Rectangle newRect = new Rectangle(0,0,bmp.Width ,bmp.Height);//嵌入图片需要被画入的部分

grap.DrawImage(bmp, oldRect, newRect, GraphicsUnit.Pixel);//在oldBmp中的oldRect画bmp中的newRect部分
                pictureBox1.BackgroundImage =oldBmp ;
            }

【转】C#中Graphics的画图代码的更多相关文章

  1. C#中Graphics的画图代码【转】

    我要写多几个字上去 string str = "Baidu"; //写什么字? Font font = Font("宋体",30f); //字是什么样子的? B ...

  2. 关于 OnCloseQuery: 顺序、不能关机等(所有的windows的广播消息都是逐窗口传递的)——如果一个窗体的OnCloseQuery事件中如果写了代码那么WM_QUERYENDSESSION消息就传不过去了msg.result会返回0,关机事件也就停止了

    系统关闭窗体的事件顺序为: OnCloseQuery ----> OnClose ----> OnDestroy 下面的代码说明问题: unit Unit3; interface uses ...

  3. 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...

  4. Android应用中如何保护JAVA代码

    Java Classes字节码的反编译太容易了,有很多功能强大的反编译利器可以轻松的将Java字节码 反转为源代码,但是android中普通.apk文件可以轻松的被反编译为Java源代码吗? 答案是当 ...

  5. SQL语句在查询分析器中可以执行,代码中不能执行

    问题:SQL语句在查询分析器中可以执行,代码中不能执行 解答:sql中包含数据库的关键字,将关键字用[]括起来,可以解决. 后记:建数据库的时候尽量避免使用关键字. 例子: sql.Format(&q ...

  6. 在Java中直接调用js代码(转载)

    http://blog.csdn.net/xzyxuanyuan/article/details/8062887 JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Ja ...

  7. 使用CodeMirror在浏览器中实现编辑器的代码高亮效果

    使用CodeMirror在浏览器中实现编辑器的代码高亮效果 在网站后台管理中希望能够对网站的样式表css与js文件以及模板html进行管理,在编辑的时候只是以普通文本展示又太普通,显得好难看,于是便在 ...

  8. Sqlserver 存储过程中结合事务的代码

    Sqlserver 存储过程中结合事务的代码  --方式一 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ ...

  9. [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...

随机推荐

  1. [转帖漫画]什么是 MD5 算法?---摘要算法 具体算法 一直搞不清楚

    漫画:什么是 MD5 算法? 2017-10-05 20:16 来源:伯乐专栏作者/玻璃猫,微信公众号 - 梦见 好文投稿, 请点击 → 这里了解详情 梦见 摘要哈希生成的正确姿势是什么样呢?分三步: ...

  2. shell 指令 摘录

    作者: learner811    本文摘自网络    权限:用户 读写 ugoa rwx * useradd userdel groupadd groupmod usermod su sudo wh ...

  3. js & Object reference bug

    js & Object reference bug bug object ref bug onClickButton (type = ``) { let { publishDate: publ ...

  4. 十三个有彩蛋的Linux命令

    原文链接: https://my.oschina.net/u/4045573/blog/2986313   一键下载安装配置文本全部命令所需环境 sudo apt-get updategit clon ...

  5. C++11并发编程个人小结

    thread_local变量在每个线程第一次执行到时初始化(类似static),并在每个线程各自累加,并在线程结束时释放. std::condition_variable:: wait(std::un ...

  6. Linux内核设计第七周学习总结 Linux内核如何装载和启动一个可执行程序

    陈巧然原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002900 实验目的 使用gdb跟踪s ...

  7. Java EE之Servlet

    1.创建Servlet类 Servlet在Java EE API规范中的定义: Servlet是一个运行在Web服务器中的Java小程序.Servlet将会接收和响应来自Web客户端的请求,使用HTT ...

  8. 解题:SCOI 2011 糖果

    题面 能把差分约束卡死的题,因为正解并不是差分约束,然而被我用一种奇怪的姿势过去了... 差分约束就是相等互相连零边,不超过/不低于从不多的一方向另一方连零边,超过/低于从少的一方向另一方连最小的边权 ...

  9. bzoj 4521: [Cqoi2016]手机号码

    感觉get到了一种数位dp的新姿势,加一位表示当前要填的数有没有限制(感觉以前的写法都太蠢了). 这么写有两个地方要注意: 1.每dp到一位时需要f[i][初始状态]++,相当于这位前都是前导零(这道 ...

  10. html视频背景

    视频作为网页背景的限制因素 在动手编码实现前,视频作为网页背景的有些问题我们要先考虑清楚: 并不是因为技术上可行你就可以任意使用:作为背景的视频内容必须能增强页面内容的感染力,而不是因为漂亮或技术上很 ...