当前位置: 首页 > news >正文

那些视频网站能用来直接做hrefwordpress 主题 制作视频教程

那些视频网站能用来直接做href,wordpress 主题 制作视频教程,彩票网站开发注意事情,网站建设案例教程文章目录 Graphics的方法Graphics.FromImageSetClip设置裁切区域IntersectClip更新为相交裁切区域TranslateClip平移裁切区域IsVisible判断点或矩形是否在裁切区域内MeasureCharacterRanges测量字符区域MeasureString测量文本大小MultiplyTransform矩阵变换 Graphics的方法 Gr… 文章目录 Graphics的方法Graphics.FromImageSetClip设置裁切区域IntersectClip更新为相交裁切区域TranslateClip平移裁切区域IsVisible判断点或矩形是否在裁切区域内MeasureCharacterRanges测量字符区域MeasureString测量文本大小MultiplyTransform矩阵变换 Graphics的方法 Graphics.FromImage 原型 public static System.Drawing.Graphics FromImage (System.Drawing.Image image);作用从图像创建Graphics对象后续可以在该对象上绘制图形等内容。 using (var image Image.FromFile(AIWoman.png)) {using (var newGraphics Graphics.FromImage(image)){newGraphics.FillEllipse(Brushes.LightGreen, new Rectangle(50, 50, 200, 200));e.Graphics.DrawImage(image, 50, 50, 600, 600);} }1、从图像文件创建Image对象 2、从Image对象创建Graphics对象 3、在Graphics对象上绘制圆形 4、将上面的内容绘制到当前Graphics上。 注意不能从如下索引色图像创建Graphics对象Format1bppIndexed、Format4bppIndexed、Format8bppIndexed对索引色图像可使用Image.Save保存为其他格式。也不能从以下图像格式创建Graphics对象Undefined、DontCare、Format16bppArgb1555和Format16bppGrayScale。 切记在使用FromImage创建的Graphics对象后要调用Dispose()方法。 SetClip设置裁切区域 原型 public void SetClip (System.Drawing.Region region, System.Drawing.Drawing2D.CombineMode combineMode); public void SetClip (System.Drawing.RectangleF rect, System.Drawing.Drawing2D.CombineMode combineMode); public void SetClip (System.Drawing.Rectangle rect, System.Drawing.Drawing2D.CombineMode combineMode); public void SetClip (System.Drawing.Graphics g, System.Drawing.Drawing2D.CombineMode combineMode); public void SetClip (System.Drawing.RectangleF rect); public void SetClip (System.Drawing.Rectangle rect); public void SetClip (System.Drawing.Graphics g); public void SetClip (System.Drawing.Drawing2D.GraphicsPath path); public void SetClip (System.Drawing.Drawing2D.GraphicsPath path, System.Drawing.Drawing2D.CombineMode combineMode);CombineMode枚举 值说明Complement现有区域被排除在新区域之外Exclude新区域被排除在现有区域之外Intersect两个区域的相交部分Replace新区域替换现有区域Union两个区域的合集Xor取只属性某一区域的合并部分 var values Enum.GetValues(typeof(CombineMode)) as CombineMode[]; CombineModeIndex (CombineModeIndex1) % values.Length;//原裁切区域 var originRect new Rectangle(100, 100, 200, 100); //另一裁切区域 var newRect new Rectangle(250, 150, 200, 100); e.Graphics.SetClip(originRect);Region clipRegion new Region(newRect); e.Graphics.SetClip(clipRegion, values[CombineModeIndex]);//查看组合后的裁切区域亮绿色部分 e.Graphics.FillRectangle(Brushes.LightGreen,e.Graphics.VisibleClipBounds);// 重置裁切区域 e.Graphics.ResetClip();// 区域两个区域的矩形 e.Graphics.DrawRectangle(new Pen(Color.Black), originRect); e.Graphics.DrawRectangle(new Pen(Color.Red), newRect); e.Graphics.DrawString($CombineMode:{values[CombineModeIndex]}亮绿区域SetClip组合的效果, Font, Brushes.Red, new PointF(20, 20));e.Graphics.DrawString($黑色框:原裁切区域, Font, Brushes.Black, originRect.X, originRect.Y - 20); e.Graphics.DrawString($红色框另一裁切区域, Font, Brushes.Red, newRect.X, newRect.Bottom 10);1、获取CombineMode的各枚举值 2、定义两个矩形一个设为当前裁切区域另一个为组合区域测试不同CombineMode的值的效果 3、在重置裁切区域将两个区域的矩形绘制显示方便观察效果。 IntersectClip更新为相交裁切区域 原型 public void IntersectClip (System.Drawing.Rectangle rect); public void IntersectClip (System.Drawing.RectangleF rect); public void IntersectClip (System.Drawing.Region region);作用将当前裁切区域更新为与指定区域的交集。 TranslateClip平移裁切区域 原型 public void TranslateClip (int dx, int dy); public void TranslateClip (float dx, float dy);作用平移裁切区域 //原裁切区域 var originRect new Rectangle(100, 100, 200, 100); //另一裁切区域 var newRect new Rectangle(250, 150, 200, 100); e.Graphics.SetClip(originRect);Region clipRegion new Region(newRect); e.Graphics.IntersectClip(clipRegion);//查看组合后的裁切区域亮绿色部分 e.Graphics.FillRectangle(Brushes.LightGreen, e.Graphics.VisibleClipBounds); //平移裁切区域亮蓝部分 e.Graphics.TranslateClip(50, 50); e.Graphics.FillRectangle(Brushes.LightBlue, e.Graphics.VisibleClipBounds); // 重置裁切区域 e.Graphics.ResetClip();// 区域两个区域的矩形 e.Graphics.DrawRectangle(new Pen(Color.Black), originRect); e.Graphics.DrawRectangle(new Pen(Color.Red), newRect);e.Graphics.DrawString($IntersectClip方法,与SetClip的Intersect相同亮绿部分, Font, Brushes.Red, new PointF(20, 20)); e.Graphics.DrawString($平移后裁切区域亮蓝部分, Font, Brushes.Red, new PointF(20, 35)); e.Graphics.DrawString($黑色框:原裁切区域, Font, Brushes.Black, originRect.X, originRect.Y - 20); e.Graphics.DrawString($红色框另一裁切区域, Font, Brushes.Red, newRect.X, newRect.Bottom 10); IntersectClip等同于SetClip方法的参数为CombineMode.Intersect时的效果。 IsVisible判断点或矩形是否在裁切区域内 原型 public bool IsVisible (System.Drawing.Point point); public bool IsVisible (System.Drawing.PointF point); public bool IsVisible (System.Drawing.Rectangle rect); public bool IsVisible (System.Drawing.RectangleF rect); public bool IsVisible (int x, int y); public bool IsVisible (float x, float y); public bool IsVisible (int x, int y, int width, int height); public bool IsVisible (float x, float y, float width, float height);作用判断一个点或一个矩形是否在裁切区域内相交也算在区域内 [System.ComponentModel.Description(Graphics的IsVisible方法)] public void Demo11_04(PaintEventArgs e) {//原裁切区域var clipRect new Rectangle(100, 100, 200, 200);e.Graphics.SetClip(clipRect);e.Graphics.FillRectangle(Brushes.LightGreen, e.Graphics.VisibleClipBounds);//注意这里的宽、高要减1e.Graphics.DrawRectangle(Pens.Red, clipRect.X, clipRect.Y, clipRect.Width - 1, clipRect.Height - 1);//区域外var ptA new Point(80, 80);var isPtAVisiable e.Graphics.IsVisible(ptA);//区域内var ptB new Point(120, 120);var isPtBVisiable e.Graphics.IsVisible(ptB);//边上也算区域内var ptC new Point(100, 100);var isPtCVisiable e.Graphics.IsVisible(ptC);//另一边要减1所以这里不算var ptD new Point(clipRect.X clipRect.Width, clipRect.Y clipRect.Height);var isPtDVisiable e.Graphics.IsVisible(ptD);var rectA new Rectangle(320, 80, 50, 50);var isRectAVisiable e.Graphics.IsVisible(rectA);var rectB new Rectangle(180, 180, 50, 50);var isRectBVisiable e.Graphics.IsVisible(rectB);var rectC new Rectangle(280, 280, 50, 50);var isRectCVisiable e.Graphics.IsVisible(rectC);var clipBounds e.Graphics.ClipBounds;e.Graphics.ResetClip();DrawPointIsVisiable(e, ptA, isPtAVisiable);DrawPointIsVisiable(e, ptB, isPtBVisiable);DrawPointIsVisiable(e, ptC, isPtCVisiable);DrawPointIsVisiable(e, ptD, isPtDVisiable);DrawRectIsVisiable(e, rectA, isRectAVisiable);DrawRectIsVisiable(e, rectB, isRectBVisiable);DrawRectIsVisiable(e, rectC, isRectCVisiable);e.Graphics.DrawString($有效裁切区域:({clipBounds.X},{clipBounds.Y},{clipBounds.Width},{clipBounds.Height}), Font, Brushes.Red, new Point(20, 20)); }//显示点是否可见 private void DrawPointIsVisiable(PaintEventArgs e, Point pt, bool isVisable) {e.Graphics.FillEllipse(Brushes.Red, pt.X - 3, pt.Y - 3, 6, 6);e.Graphics.DrawString($Pt({pt.X},{pt.Y})是否可见{isVisable}, Font, Brushes.Red, pt.X 10, pt.Y); }//显示矩形是否可见 private void DrawRectIsVisiable(PaintEventArgs e,Rectangle rect,bool isVisable) {e.Graphics.DrawRectangle(Pens.Blue, rect);e.Graphics.DrawString($Rect({rect.X},{rect.Y},{rect.Width},{rect.Height})是否可见{isVisable}, Font, Brushes.Blue, rect.Right 10, rect.Y); } 1、分别测试点在区域外、区域边缘、区域内的情况 2、分别测试矩形在区域外、区域相交、区域内的情况 MeasureCharacterRanges测量字符区域 原型 public System.Drawing.Region[] MeasureCharacterRanges (string text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat stringFormat);作用给定一个文字绘制布局需够长足以绘制文字测量相应的文字的绘制范围。 // 设置一段文字 string measureString Hello,这是一段测试范围的文字; using (Font stringFont new Font(宋体, 16.0F)) {// 设置Hello,测试范围的字符范围CharacterRange[] characterRanges { new CharacterRange(0, 5), new CharacterRange(10, 4) };// Create rectangle for layout.float x 50.0F;float y 50.0F;float width 75.0F;float height 500.0F;//注意这个范围要能完整含文字在RectangleF layoutRect new RectangleF(x, y, width, height);e.Graphics.DrawRectangle(Pens.LightGreen, Rectangle.Round(layoutRect));// 设置文字格式StringFormat stringFormat new StringFormat();stringFormat.FormatFlags StringFormatFlags.DirectionVertical;stringFormat.SetMeasurableCharacterRanges(characterRanges);// 绘制文字e.Graphics.DrawString(measureString, stringFont, Brushes.Black, x, y, stringFormat);// 绘制两个文字的区域Region[] stringRegions e.Graphics.MeasureCharacterRanges(measureString,stringFont, layoutRect, stringFormat);// 绘制第一个文字区域RectangleF measureRect1 stringRegions[0].GetBounds(e.Graphics);e.Graphics.DrawRectangle(new Pen(Color.Red, 1), Rectangle.Round(measureRect1));// 绘制第二个文字区域RectangleF measureRect2 stringRegions[1].GetBounds(e.Graphics);e.Graphics.DrawRectangle(new Pen(Color.Blue, 1), Rectangle.Round(measureRect2)); } 1、定义一段要测量的文字“Hello,这是一段测试范围的文字”其中要测试Hello与测试范围两个字符串区域 2、定义文字绘制矩形布局 3、绘制文字 4、测量文字的范围 5、将测量范围用两个矩形框绘制到文字处。 MeasureString测量文本大小 原型 public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font); public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea); public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, int width); public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, System.Drawing.PointF origin, System.Drawing.StringFormat stringFormat); public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat stringFormat); public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, int width, System.Drawing.StringFormat format); public System.Drawing.SizeF MeasureString (string text, System.Drawing.Font font, System.Drawing.SizeF layoutArea, System.Drawing.StringFormat stringFormat, out int charactersFitted, out int linesFilled);作用测量文本的范围或限制宽度时可自动计算行换后的高度也统计字符个数行数。 //设置文本和字体‌ string measureString 待测试的文字还包含English; Font stringFont new Font(宋体, 16);//测量文本大小 var stringSize e.Graphics.MeasureString(measureString, stringFont); var insertPt new PointF(20, 20); //绘制文本大小的矩形 e.Graphics.DrawRectangle(new Pen(Color.Red, 1), insertPt.X, insertPt.Y, stringSize.Width, stringSize.Height); //绘制文本 e.Graphics.DrawString(measureString, stringFont, Brushes.Black, insertPt);e.Graphics.TranslateTransform(100, 100); // Set point for upper-left corner of string. float x 50.0F; float y 50.0F; PointF ulCorner new PointF(x, y);// Set string format. StringFormat newStringFormat new StringFormat(); newStringFormat.FormatFlags StringFormatFlags.DirectionVertical;// Measure string. stringSize e.Graphics.MeasureString(measureString, stringFont, ulCorner, newStringFormat);// Draw rectangle representing size of string. e.Graphics.DrawRectangle(new Pen(Color.Red, 1), x, y, stringSize.Width, stringSize.Height);// Draw string to screen. e.Graphics.DrawString(measureString, stringFont, Brushes.Black, ulCorner, newStringFormat);e.Graphics.TranslateTransform(100, 0);// Set maximum layout size. var layoutSize new SizeF(100.0F, 300.0F);// Set string format. newStringFormat.FormatFlags StringFormatFlags.DirectionVertical;// Measure string. stringSize e.Graphics.MeasureString(measureString, stringFont, layoutSize, newStringFormat);// Draw rectangle representing size of string. e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);// Draw string to screen. e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0), newStringFormat);e.Graphics.TranslateTransform(100, 0);// Set maximum width of string. int stringWidth 100;// Set string format. newStringFormat.FormatFlags StringFormatFlags.DirectionVertical;// Measure string. stringSize e.Graphics.MeasureString(measureString, stringFont, stringWidth, newStringFormat);// Draw rectangle representing size of string. e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);// Draw string to screen. e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0), newStringFormat);// e.Graphics.TranslateTransform(100, 0); // Set maximum layout size. layoutSize new SizeF(100.0F, 300.0F);// Set string format. newStringFormat.FormatFlags StringFormatFlags.DirectionVertical;// Measure string. int charactersFitted; int linesFilled; stringSize e.Graphics.MeasureString(measureString, stringFont, layoutSize, newStringFormat, out charactersFitted, out linesFilled);// Draw rectangle representing size of string. e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height);// Draw string to screen. e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0), newStringFormat);// Draw output parameters to screen. string outString chars charactersFitted , lines linesFilled; e.Graphics.DrawString(outString, stringFont, Brushes.Black, new PointF(100, 0));测试不同参数下测量文本区域的结果。 MultiplyTransform矩阵变换 原型 public void MultiplyTransform (System.Drawing.Drawing2D.Matrix matrix);//默认是MatrixOrder.Prepend public void MultiplyTransform (System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order);作用将世界变换矩阵与该矩形相乘。 var rect new Rectangle(0, 0, 200, 100); var pt1 new Point(0, 0); var pt2 new Point(200, 100); // Create transform matrix. using (Matrix transformMatrix new Matrix()) {//平移(200,100)transformMatrix.Translate(200.0F, 100.0F);//世界坐标顺时旋转30度e.Graphics.RotateTransform(30.0F);e.Graphics.DrawLine(Pens.Red, pt1, pt2);e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), rect);//先平移再旋转e.Graphics.MultiplyTransform(transformMatrix);//默认是 MatrixOrder.Prepend在e.Graphics.DrawLine(Pens.Blue, pt1, pt2);// Draw rotated, translated ellipse.e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), rect);e.Graphics.ResetTransform();//世界坐标顺时旋转30度e.Graphics.RotateTransform(30.0F);//先旋转再平移e.Graphics.MultiplyTransform(transformMatrix, MatrixOrder.Append);e.Graphics.DrawLine(Pens.Red, pt1, pt2);e.Graphics.DrawEllipse(new Pen(Color.Red, 3), rect); }分别测试应用矩阵顺序不同导致的结果不同。
http://www.dnsts.com.cn/news/8289.html

相关文章:

  • 狐表做网站动漫网站源码下载
  • 深圳中心网站建设网站header设计
  • 遵义哪里有做网站的淄博网站建设 很乱
  • 个人站长适合做什么网站岳阳网站建设
  • 帮别人做网站用织梦模板行吗找个做网站的
  • 有人知道做网站吗?可以跟关键词密度过高的网站交换友情链接吗
  • 十大网络营销成功案例wordpress 百度优化
  • 做网站servlet开发公司管理规章制度
  • 网站转备案成都网站设计 常凡云
  • 网站开发兴趣组浙江网缘电子商务有限公司
  • 成都网站建设开发价格wordpress 功能定制
  • 做网站v赚钱网站开发所使用的浏览器
  • 中小型网站服务器搭建方案制作网页的详细步骤
  • 怎么在vmware上做网站专业广告策划公司
  • wordpress建企业网站设置阿里云 网站建设
  • 浏览器官网做移动网站优化软件
  • 网站如何不被百度搜到WordPress文章发布模块
  • 佛山品牌网站设计制作wordpress f4v
  • 做网站店铺怎样打理深圳罗湖住房和建设局网站官网
  • 网站的数据库有什么用小程序商城装修图片
  • 机械设备网站建设怎样给网站做流量
  • 正规网站建设咨询电话建立网站平台
  • 珠海网站建设怎样网络推广平台软件app
  • 代做毕设网站可信么四川省城乡建设信息网站证件查询
  • 宁波自主建站模板东莞市赢网网络科技有限公司
  • 长春免费建站东营港经济开发区
  • 网站建设教程突中国有色金属价格网
  • 淘宝联盟做网站网站开发 模板 c
  • 宁波企业网站搭建特点张掖交通建设投资有限责任公司网站
  • 慢慢网站建设亚马逊一般在哪些网站上做推广