• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    jsp实现生成中国国旗图片效果代码

    本文实例讲述了jsp实现生成中国国旗图片效果代码。分享给大家供大家参考,具体如下:

    图片截图如下:

    具体代码如下:

    %@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    %@ page contentType="image/jpeg" import="java.awt.*,
    java.awt.image.*,java.util.*,javax.imageio.*,java.awt.Shape.*,java.awt.geom.*,com.sun.image.codec.jpeg.*" %>
    %
     out.clear();
     response.setContentType("image/jpeg");
     response.setHeader("Pragma","No-cache");
     response.setHeader("Cache-Control","no-cache");
     response.setDateHeader("Expires", 0);
     int width =300;
     int height = width/3*2; 
       double maxR = 0.15, minR = 0.05; 
       double maxX = 0.50, maxY = 0.50; 
       double[] minX = {0.75, 0.85, 0.85, 0.75}; 
       double[] minY = {0.35, 0.45, 0.60, 0.70}; 
     BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
     java.awt.Graphics2D g=(java.awt.Graphics2D)image.createGraphics();
     g.clearRect(0, 0,width,height);
     g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
     //画棋面
     g.setColor(java.awt.Color.red);
     g.fillRect(0, 0, width, height);
     //g.fillRect(50, 50, width, height);
     g.setColor(java.awt.Color.yellow);
     //画大五角星
        double ox = height*maxX, oy = height*maxY;
     g.fill(createPentacle(ox,oy,height*maxR,-Math.PI/2)); 
     //画小五角星
        for(int idx =0;idx  4;idx ++){ 
          double sx = minX[idx]*height, sy = minY[idx]*height; 
          double theta = Math.atan2(oy-sy,ox-sx); 
          g.fill(createPentacle(sx,sy,height*minR,theta)); 
        } 
     g.dispose();
     out.clearBuffer(); 
     out = pageContext.pushBody();
     //ImageIO.write(image, "JPEG", response.getOutputStream());
      ServletOutputStream outStream = response.getOutputStream();
        JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream);
        encoder.encode(image);
        outStream.close();
    %>
    %!
     public static java.awt.Shape createPentacle(double sx, double sy, double radius,double theta) {
     final double arc = Math.PI / 5;
     final double rad = Math.sin(Math.PI / 10) / Math.sin(3 * Math.PI / 10);
     GeneralPath path = new GeneralPath();
     path.moveTo(1, 0);
     for (int idx = 0; idx  5; idx++) {
      path.lineTo(rad * Math.cos((1 + 2 * idx) * arc),rad * Math.sin((1 + 2 * idx) * arc));
      path.lineTo(Math.cos(2 * (idx + 1) * arc),Math.sin(2 * (idx + 1) * arc));
     }
     path.closePath();
     AffineTransform atf = AffineTransform.getScaleInstance(radius, radius);
     atf.translate(sx / radius, sy / radius);
     atf.rotate(theta);
     return atf.createTransformedShape(path);
     }
    %>
    
    

    将代码另存为jsp文件,放在运行目录下执行即可。

    代码在tomcat6.0下测试通过

    希望本文所述对大家JSP程序设计有所帮助。

    您可能感兴趣的文章:
    • C#绘制中国国旗的方法
    • JavaScript国旗变换效果代码
    • 给你一面国旗 教你用python画中国国旗
    上一篇:纯jsp实现的倒计时动态显示效果完整代码
    下一篇:jsp通过自定义标签库实现数据列表显示的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    jsp实现生成中国国旗图片效果代码 jsp,实现,生成,中国,国旗,