本文实例讲述了jsp实现生成中国国旗图片效果代码。分享给大家供大家参考,具体如下:
图片截图如下:
具体代码如下:
“% @”页面语言=“Java”导入=“Java . util . *”页面编码=“UTF-8”% @页面内容类型=“image/JPEG”导入=“Java”。啊。*,java.awt.image.*,java。乌提尔。*,javax.imageio.*,java.awt.Shape.*,java.awt.geom.*,com。星期日图像。编解码器。JPEG。* % .出去。clear();回应。setcontenttype(' image/JPEG ');response.setHeader('Pragma ','无缓存');response.setHeader('缓存控制','无缓存');回应。setdateheader(' Expires ',0);int width=300 int height=width/3 * 2;double maxR=0.15,minR=0.05double maxX=0.50,maxY=0.50double[] minX={0.75,0.85,0.85,0.75 };double[] minY={0.35,0.45,0.60,0.70 };BufferedImage图像=新的BufferedImage(宽度、高度、BufferedImage .TYPE _ INT _ RGB);Java。啊。图形2d g=(Java。啊。图形2d)图像。create graphics();g.clearRect(0,0,宽度,高度);g.setRenderingHint(呈现提示)。抗锯齿,渲染提示VALUE _ antias _ ON);//画棋面g . setcolor(Java。啊。颜色。红色);g.fillRect(0,0,宽度,高度);//g.fillRect(50,50,宽度,高度);g . setcolor(Java。啊。颜色。黄色);//画大五角星双ox=高度*maxX,oy=高度* maxYg。填充(createpentaple(ox,oy,height*maxR,-Math .PI/2));//画小五角星for(int idx=0;idx 4;idx){ double sx=minX[idx]*高度,sy=minY[idx]*高度;double theta=Math.atan2(oy-sy,ox-sx);g . fill(createpentaple(sx,sy,height*minR,theta));} g . dispose();出去。ClearBuffer();out=页面上下文。PubBody();//ImageIO.write(image,' JPEG ',响应。getoutputstream());ServletOutputStream outStream响应。getoutputstream();JPEGImageEncoder编码器=jpegcodec。createjpegencoder(OutStream);encoder.encode(图像);外流。close();%%!公共静态Java。啊。形状创建五倍(双sx,双sy,双半径,双){最终双圆弧=数学.PI/5;期末双rad=数学PI/10) /数学。罪恶(3 *数学/10);常规路径路径=new general path();path.moveTo(1,0);for(int idx=0;idx 5;idx){路径。行到(rad * math。cos((1 2 * idx)* arc),rad * math。sin((1 2 * idx)* arc));path.lineTo(Math.cos(2 * (idx 1) *弧),Math.sin(2 * (idx 1) *弧));}路径。close path();affinite transform ATF=affinite transform。GetScaleInstance(半径,半径);atf.translate(sx /半径,sy /半径);ATF。旋转();返回atf.createTransformedShape(路径);}%将代码另存为jsp文件,放在运行目录下执行即可。
代码在tomcat6.0下测试通过
希望本文所述对大家JSP程序设计有所帮助。