源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp.net实现C#绘制太极图的方法

  • 时间:2021-01-10 00:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp.net实现C#绘制太极图的方法
本文实例讲述了asp.net实现C#绘制太极图的方法。分享给大家供大家参考。具体如下: 成品图如下所示: [img]http://files.jb51.net/file_images/article/201502/2015216154404375.jpg?201511615524[/img] html页面: 注意设置:
[u]复制代码[/u] 代码如下:
ContentType="Image/Jpeg"
[u]复制代码[/u] 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TaiJiTu.aspx.cs" Inherits="TaiJiTu" ContentType="Image/Jpeg" %> <!DOCTYPE html>  <html xmlns="http://www.w3.org/1999/xhtml">  <head runat="server">  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>      <title></title>  </head>  <body>      <form id="form1" runat="server">      <div>      </div>      </form>  </body>  </html>
后台代码:
[u]复制代码[/u] 代码如下:
using System;  using System.Drawing;  using System.Drawing.Drawing2D;  using System.Drawing.Imaging;    public partial class TaiJiTu : System.Web.UI.Page  {      private Encoder myEncoder;      private EncoderParameter myEncoderParameter;      private EncoderParameters myEncoderParameters;      protected void Page_Load(object sender, EventArgs e)      {          int imgWidth = 400;                 //图象尺寸          int eyeRadius = imgWidth / 20;      //鱼眼半径          int headDiameter = imgWidth / 2;    //鱼头直径            Bitmap image = new Bitmap(imgWidth, imgWidth);          image.SetResolution(300, 300);            Graphics graphics = Graphics.FromImage(image);            //设置图像质量          graphics.CompositingQuality = CompositingQuality.HighQuality;          graphics.SmoothingMode = SmoothingMode.AntiAlias;          graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;         //底色填充为白色          Brush white = new SolidBrush(Color.White);          graphics.FillRectangle(white, new Rectangle(0, 0, imgWidth, imgWidth));         Brush blue = new SolidBrush(Color.Blue);//定义蓝色笔刷          Brush red = new SolidBrush(Color.Red);//定义红色笔刷          //整个圆形填充蓝色          graphics.FillPie(blue, 0, 0, imgWidth, imgWidth, 0, 360);            //定义右边的路径(红色部分)          GraphicsPath redPath = new GraphicsPath();//初始化路径          redPath.AddArc(0, 0, imgWidth, imgWidth, 0, -180);          redPath.AddArc(0, headDiameter / 2, headDiameter, headDiameter, 0, -180);          redPath.AddArc(headDiameter, headDiameter / 2, headDiameter, headDiameter, 0, 180);         //填充右边部分          graphics.FillPath(red, redPath);         //填充红色眼睛          graphics.FillPie(red, new Rectangle(headDiameter / 2 - eyeRadius, headDiameter - eyeRadius, eyeRadius * 2, eyeRadius * 2), 0, 360);         //填充蓝色眼睛          graphics.FillPie(blue, new Rectangle(headDiameter + headDiameter / 2 - eyeRadius, headDiameter - eyeRadius, eyeRadius * 2, eyeRadius * 2), 0, 360);          graphics.Dispose();          //写入到Response输出流中去,普通质量          //image.Save(Response.OutputStream, ImageFormat.Jpeg);          //修改图片保存质量          ImageCodecInfo myImageCodecInfo = GetEncoder(ImageFormat.Jpeg);          myEncoder = Encoder.Quality;          myEncoderParameters = new EncoderParameters(1);          //图片质量等级          myEncoderParameter = new EncoderParameter(myEncoder, 100L);          myEncoderParameters.Param[0] = myEncoderParameter;            //使用指定参数输出          image.Save(Response.OutputStream, myImageCodecInfo, myEncoderParameters);      }      private static ImageCodecInfo GetEncoder(ImageFormat format)      {          ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();            foreach (ImageCodecInfo codec in codecs)          {              if (codec.FormatID == format.Guid)              {                  return codec;              }          }          return null;      }  }
希望本文所述对大家的C#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部