热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

这篇文章主要介绍了asp.net实现C#绘制太极图的方法,实例分析了asp.net绘制图形的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了asp.net实现C#绘制太极图的方法。分享给大家供大家参考。具体如下:

成品图如下所示:

html页面:

注意设置:

代码如下:
COntentType="Image/Jpeg"

代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TaiJiTu.aspx.cs" Inherits="TaiJiTu" COntentType="Image/Jpeg" %>
 
 
 
 
     
 
 
     
   
 
   
 
     
 

后台代码:

代码如下:
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#程序设计有所帮助。


推荐阅读
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
author-avatar
se8529106
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有