📄 worldfileimagereader.java
字号:
//**********************************************************************////<copyright>////BBN Technologies//10 Moulton Street//Cambridge, MA 02138//(617) 873-8000////Copyright (C) BBNT Solutions LLC. All rights reserved.////</copyright>//**********************************************************************////$Source:///cvs/darwars/ambush/aar/src/com/bbn/ambush/mission/MissionHandler.java,v//$//$RCSfile: WorldFileImageReader.java,v $//$Revision: 1.1.2.2 $//$Date: 2007/01/22 15:52:58 $//$Author: dietrick $////**********************************************************************package com.bbn.openmap.dataAccess.image;import java.awt.image.BufferedImage;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.util.logging.Level;import java.util.logging.Logger;import javax.imageio.ImageIO;import javax.imageio.stream.FileCacheImageInputStream;import com.bbn.openmap.image.BufferedImageHelper;import com.bbn.openmap.omGraphics.OMRaster;import com.bbn.openmap.proj.CADRG;import com.bbn.openmap.util.PropUtils;public class WorldFileImageReader implements ImageReader { public static Logger logger = Logger.getLogger("com.bbn.openmap.dataAccess.image.WorldFileImageReader"); protected WorldFile worldFile; protected URL fileURL; public WorldFileImageReader(URL fileURL) throws MalformedURLException, IOException { this.fileURL = fileURL; worldFile = WorldFile.get(fileURL); } public BufferedImage getBufferedImage() { try { BufferedImage bi = getJAIImage(fileURL); if (bi == null && worldFile != null) { // This means that the world file was found, and that the image // wasn't loaded. The most likely problem that causes this // situation is that JAI isn't installed on the system. So, // let's try using ImageIO. bi = getImageIOImage(fileURL); } return bi; } catch (IOException ioe) { logger.info("problem reading " + fileURL + ", IOException"); ioe.printStackTrace(); } return null; } public static BufferedImage getImageIOImage(URL fileURL) throws IOException { FileCacheImageInputStream fciis = new FileCacheImageInputStream(fileURL.openStream(), null); BufferedImage fileImage = ImageIO.read(fciis); return fileImage; } public static BufferedImage getJAIImage(URL fileURL) throws IOException { return BufferedImageHelper.getJAIBufferedImage("url", fileURL); } public ImageTile getImageTile(ImageTile.Cache cache) { try { if (worldFile instanceof ErrWorldFile) { return new ErrImageTile(((ErrWorldFile) worldFile).getProblemMessage()); } else if (worldFile != null) { BufferedImage bi = getBufferedImage(); if (bi != null) { double ulat = worldFile.getY(); double llon = worldFile.getX(); double llat = ulat + worldFile.getYDim() * bi.getHeight(); double rlon = llon + worldFile.getXDim() * bi.getWidth(); if (logger.isLoggable(Level.FINE)) { logger.info("Image should be at: " + ulat + ", " + llon + " - to - " + llat + ", " + rlon); } return new ImageTile((float) ulat, (float) llon, (float) llat, (float) rlon, this, cache); } } else { logger.info("World file for " + fileURL + " can't be found."); } } catch (NullPointerException npe) { if (logger.isLoggable(Level.FINE)) { logger.fine("Problem creating image (NullPointerException) from " + fileURL); npe.printStackTrace(); } } return null; } public ImageTile getImageTile() { return getImageTile(null); } public static void main(String[] args) { if (args.length < 1) { System.out.println("WorldFileImageReader: Need a path/filename"); System.exit(0); } logger.info("WorldFileImageReader: " + args[0]); String filePath = null; if (args.length > 0) { filePath = args[0]; } if (filePath != null) { try { URL fileURL = PropUtils.getResourceOrFileOrURL(filePath); if (fileURL != null) { WorldFileImageReader wfir = new WorldFileImageReader(fileURL); BufferedImage bi = wfir.getBufferedImage(); CADRG crg = new CADRG(new com.bbn.openmap.LatLonPoint(0f, 0f), 1500000, 600, 600); final OMRaster omsr = new OMRaster(0, 0, bi); omsr.generate(crg); java.awt.Frame window = new java.awt.Frame(filePath) { public void paint(java.awt.Graphics g) { if (omsr != null) { omsr.render(g); } } }; window.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { // need a shutdown event to notify other gui beans // and // then exit. System.exit(0); } }); window.setSize(omsr.getWidth(), omsr.getHeight()); window.setVisible(true); window.repaint(); } } catch (MalformedURLException murle) { } catch (IOException ioe) { } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -