zoukankan      html  css  js  c++  java
  • asp.net C#绘制太极图

    成品图:


    html页面:

    注意设置

     ContentType="Image/Jpeg"

    <%@ 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>
    

    后台代码:

    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;
        }
    }


  • 相关阅读:
    1042 Shuffling Machine
    1043 Is It a Binary Search Tree
    1044 Shopping in Mars
    1443. Minimum Time to Collect All Apples in a Tree
    1045 Favorite Color Stripe
    Java笔记八:Java内置的包装类(1)
    Java笔记七:Java数字和日期处理(2)
    Java笔记六:Java数字和日期处理(1)
    Java笔记五: Java正则表达式
    Java笔记四:Java字符串处理
  • 原文地址:https://www.cnblogs.com/apollokk/p/6713887.html
Copyright © 2011-2022 走看看