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

环境: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       if ok  ) {
29           BufferedImage   image   =  new  BufferedImage ( 640 480 , 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 ( 0 0 480 480 ) ;
36           if null  != symbologyImage.radialImage [ 0 ] ) { //Radial产品
37               symbologyImage.radialImage [ 0 ] .draw ( z, g,  new  Point ( 240 240 )) ; //画图
38               symbologyImage.radialImage [ 0 ] .drawBackground ( z, g,  new  Point ( 240 240 ) , true,  30.0 true ) ; //极圈极径
39               g.setClip ( 480 0 160 480 ) ; //剪切区域
40               symbologyImage.radialImage [ 0 ] .drawInformation ( g,  new  Point ( 480 , 0 )) ; //信息区域
41           }
42           else if null  != symbologyImage.rasterImage [ 0 ] ) { //Raster产品
43               symbologyImage.rasterImage [ 0 ] .draw ( z, g,  new  Point ( 240 240 )) ; //画图
44               symbologyImage.rasterImage [ 0 ] .drawBackground ( z, g,  new  Point ( 240 240 ) , true,  30.0 true ) ; //极圈极径
45               g.setClip ( 480 0 160 480 ) ; //剪切区域
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.0f false ) ;
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、付费专栏及课程。

余额充值