Doppler雷达产品(Radial扫描和Raster栅格)直接在WEB页面出图的例子

本文介绍了一个使用JSP技术在Web页面上显示多普勒雷达图像的方法,并通过叠加极圈、极径和市县边界来增强图像的可读性。示例代码展示了如何从文件加载图像、设置图像质量及输出到浏览器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:RedHat Linux 9、Tomcat 5.0.28、j2sdk1.4.2_13
在WEB页面单幅显示多普勒雷达图像并叠加极圈、极径、市县边界的JSP例子:
(GIF动画显示及直接从.tar.gz中读取源数据的例子略)

01 <%page pageEncoding="GB2312" %>
02 <%page contentType="image/jpeg; charset=gb2312" %>
03 <% request.setCharacterEncoding("GB2312"); %>
04 
05 <%page import="
06     cma.gmb.doppler.*,
07     java.awt.*,
08     java.awt.image.*,
09     com.sun.image.codec.jpeg.*,
10     java.lang.*,
11     java.io.*" %>
12 
13 <%
14     //需要以后台方式用到图形设备
15     System.setProperty("java.awt.headless""true");
16     //页面不缓存
17     response.setHeader("Pragma""no-cache");
18     response.setHeader("Cache-Control""no-store");
19     response.setHeader("Expires""0");
20 
21     out.clear();
22 
23     //获得页面传递的参数
24     String  fileString      = request.getParameter("f");
25 
26     SymbologyImage  symbologyImage  = new SymbologyImage();
27     boolean ok  = symbologyImage.loadFromFile(fileString);
28     ifok ) {
29         BufferedImage   image   = new BufferedImage(640480, BufferedImage.TYPE_3BYTE_BGR);
30         Graphics2D      g       = image.createGraphics();
31         //以下两行改进线条的锯齿
32         RenderingHints renderHints = new RenderingHints(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
33         g.setRenderingHints(renderHints);
34         double  z   = 1.0;
35         g.setClip(00480480);
36         ifnull != symbologyImage.radialImage[0] ) {//Radial产品
37             symbologyImage.radialImage[0].draw(z, g, new Point(240240));//画图
38             symbologyImage.radialImage[0].drawBackground(z, g, new Point(240240), true, 30.0true);//极圈极径
39             g.setClip(4800160480);//剪切区域
40             symbologyImage.radialImage[0].drawInformation(g, new Point(480,0));//信息区域
41         }
42         else ifnull != symbologyImage.rasterImage[0] ) {//Raster产品
43             symbologyImage.rasterImage[0].draw(z, g, new Point(240240));//画图
44             symbologyImage.rasterImage[0].drawBackground(z, g, new Point(240240), true, 30.0true);//极圈极径
45             g.setClip(4800160480);//剪切区域
46             symbologyImage.rasterImage[0].drawInformation(g, new Point(480,0));//信息区域
47         }
48         g.dispose();//图形设备生效
49 
50         //获得浏览器的输出流
51         ServletOutputStream sos     = response.getOutputStream();
52         //JPEG编码器
53         JPEGImageEncoder    encoder1    = JPEGCodec.createJPEGEncoder(sos);
54 
55         //改进图片质量
56         JPEGEncodeParam param1 = encoder1.getDefaultJPEGEncodeParam(image);
57         param1.setQuality(1.0ffalse);
58         encoder1.setJPEGEncodeParam(param1);
59 
60         //输出到浏览器
61         encoder1.encode(image);
62     }
63 
64 %>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值