亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gdaltest.java

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? JAVA
字號:
/****************************************************************************** * $Id: GDALtest.java 9134 2006-02-08 19:39:03Z collinsb $ * * Name:     GDALtest.java * Project:  GDAL SWIG Interface * Purpose:  Sample Java application showing some basic loading of raster data  * Author:   Benjamin Collins, The MITRE Corporation * * * $Log$ * Revision 1.1  2006/02/08 19:39:03  collinsb * Initial version * **/import java.awt.BorderLayout;import java.awt.color.ColorSpace;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.image.BandedSampleModel;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.awt.image.ComponentColorModel;import java.awt.image.DataBuffer;import java.awt.image.DataBufferByte;import java.awt.image.DataBufferInt;import java.awt.image.DataBufferShort;import java.awt.image.Raster;import java.awt.image.SampleModel;import java.awt.image.WritableRaster;import java.io.File;import java.nio.ByteBuffer;import java.util.Enumeration;import java.util.Hashtable;import java.util.Vector;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import org.gdal.gdal.Band;import org.gdal.gdal.Dataset;import org.gdal.gdal.Driver;import org.gdal.gdal.GCP;import org.gdal.gdal.gdal;import org.gdal.gdalconst.gdalconst;import org.gdal.gdalconst.gdalconstConstants;public class GDALtest extends JFrame implements ActionListener{	BufferedImage image = null;	JLabel canvas = null;	JButton load = null;	static {		System.out.println("GDAL init...");		gdal.AllRegister();		int count = gdal.GetDriverCount();		System.out.println(count + " available Drivers");		for (int i = 0; i < count; i++) {			try {				Driver driver = gdal.GetDriver(i);				System.out.println(" " + driver.getShortName() + " : "						+ driver.getLongName());			} catch (Exception e) {				System.err.println("Error loading driver " + i);			}		}	}		public GDALtest() {				load = new JButton("Load Image");		load.addActionListener(this);		canvas = new JLabel();		canvas.setSize(1024, 768);		this.getContentPane().setLayout(new BorderLayout());		this.getContentPane().add(load, BorderLayout.NORTH);		this.getContentPane().add(canvas, BorderLayout.SOUTH);		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);		this.setSize(1024, 768);		this.show();	}		public void setImage(BufferedImage image) {		ImageIcon icon = new ImageIcon(image);				if(this.canvas != null) {			canvas.setIcon(icon);		}	}		public BufferedImage openFile(File f) {		Dataset poDataset = null;		try {			poDataset = (Dataset) gdal.Open(f.getAbsolutePath(),					gdalconst.GA_ReadOnly);			if (poDataset == null) {				System.out.println("The image could not be read.");				printLastError();				return null;			}		} catch(Exception e) {			System.err.println("Exception caught.");			System.err.println(e.getMessage());			e.printStackTrace();			return null;		}		double[] adfGeoTransform = new double[6];		System.out.println("Driver: " + poDataset.GetDriver().GetDescription());		System.out.println("Size is: " + poDataset.getRasterXSize() + "x"				+ poDataset.getRasterYSize() + "  bands:"				+ poDataset.getRasterCount());		if (poDataset.GetProjectionRef() != null)			System.out.println("Projection is `" + poDataset.GetProjectionRef()					+ "'");				Hashtable dict = poDataset.GetMetadata_Dict("");		Enumeration keys = dict.keys();		System.out.println(dict.size() + " items of metadata found (via Hashtable dict):");		while(keys.hasMoreElements()) {			String key = (String)keys.nextElement();			System.out.println(" :" + key + ":==:" + dict.get(key) + ":");		}		Vector list = poDataset.GetMetadata_List("");		Enumeration enumerate = list.elements();		System.out.println(list.size() + " items of metadata found (via Vector list):");		while(enumerate.hasMoreElements()) {			String s = (String)enumerate.nextElement();			System.out.println(" " + s);		}				Vector GCPs = new Vector();		poDataset.GetGCPs(GCPs);		System.out.println("Got " + GCPs.size() + " GCPs");		Enumeration e = GCPs.elements();		while(e.hasMoreElements()) {			GCP gcp = (GCP)e.nextElement();			System.out.println(" x:" + gcp.getGCPX() +					" y:" + gcp.getGCPY() +					" z:" + gcp.getGCPZ() +					" pixel:" + gcp.getGCPPixel() +					" line:" + gcp.getGCPLine() +					" line:" + gcp.getInfo());		}				poDataset.GetGeoTransform(adfGeoTransform);		{			System.out.println("Origin = (" + adfGeoTransform[0] + ", "					+ adfGeoTransform[3] + ")");			System.out.println("Pixel Size = (" + adfGeoTransform[1] + ", "					+ adfGeoTransform[5] + ")");		}		Band poBand = null;		double[] adfMinMax = new double[2];		Double[] max = new Double[1];		Double[] min = new Double[1];				int bandCount = poDataset.getRasterCount();		ByteBuffer[] bands = new ByteBuffer[bandCount];		int[] banks = new int[bandCount];		int[] offsets = new int[bandCount];				int xsize = 1024;//poDataset.getRasterXSize();		int ysize = 1024;//poDataset.getRasterYSize();		int pixels = xsize * ysize;		int buf_type = 0, buf_size = 0;		for(int band = 0; band < bandCount; band++) {			/* Bands are not 0-base indexed, so we must add 1 */			poBand = poDataset.GetRasterBand(band+1);						buf_type = poBand.getDataType();			buf_size = pixels * gdal.GetDataTypeSize(buf_type) / 8;			System.out.println(" Data Type = "					+ gdal.GetDataTypeName(poBand.getDataType()));			System.out.println(" ColorInterp = "					+ gdal.GetColorInterpretationName(poBand							.GetRasterColorInterpretation()));						System.out.println("Band size is: " + poBand.getXSize() + "x"					+ poBand.getYSize());				poBand.GetMinimum(min);			poBand.GetMaximum(max);			if(min[0] != null || max[0] != null) {				System.out.println("  Min=" + min[0] + " Max="						+ max[0]);			} else {				System.out.println("  No Min/Max values stored in raster.");			}				if (poBand.GetOverviewCount() > 0) {				System.out.println("Band has " + poBand.GetOverviewCount()						+ " overviews.");			}				if (poBand.GetRasterColorTable() != null) {				System.out.println("Band has a color table with "						+ poBand.GetRasterColorTable().GetCount() + " entries.");				for(int i = 0; i < poBand.GetRasterColorTable().GetCount(); i++) {					System.out.println(" " + i + ": " + 							poBand.GetRasterColorTable().GetColorEntry(i));				}			}						System.out.println("Allocating ByteBuffer of size: " + buf_size);			ByteBuffer data = ByteBuffer.allocateDirect(buf_size);			int returnVal = 0;			try {				returnVal = poBand.ReadRaster_Direct(0, 0, poBand.getXSize(), 						poBand.getYSize(), xsize, ysize,						buf_type, data);			} catch(Exception ex) {				System.err.println("Could not read raster data.");				System.err.println(ex.getMessage());				ex.printStackTrace();				return null;			}			if(returnVal == gdalconstConstants.CE_None) {				bands[band] = data;			} else {				printLastError();			}			banks[band] = band;			offsets[band] = 0;		}		DataBuffer imgBuffer = null;		SampleModel sampleModel = null;		int data_type = 0, buffer_type = 0;				if(buf_type == gdalconstConstants.GDT_Byte) {			byte[][] bytes = new byte[bandCount][];			for(int i = 0; i < bandCount; i++) {								bytes[i] = new byte[pixels];				bands[i].get(bytes[i]);			}			imgBuffer = new DataBufferByte(bytes, pixels);			buffer_type = DataBuffer.TYPE_BYTE;			sampleModel = new BandedSampleModel(buffer_type, 					xsize, ysize, xsize, banks, offsets);			data_type = (poBand.GetRasterColorInterpretation() == 				gdalconstConstants.GCI_PaletteIndex)? 				BufferedImage.TYPE_BYTE_INDEXED : BufferedImage.TYPE_BYTE_GRAY;		} else if(buf_type == gdalconstConstants.GDT_Int16) {			short[][] shorts = new short[bandCount][];			for(int i = 0; i < bandCount; i++) {								shorts[i] = new short[pixels];				bands[i].asShortBuffer().get(shorts[i]);			}			imgBuffer = new DataBufferShort(shorts, pixels);			buffer_type = DataBuffer.TYPE_USHORT;			sampleModel = new BandedSampleModel(buffer_type, 					xsize, ysize, xsize, banks, offsets);			data_type = BufferedImage.TYPE_USHORT_GRAY;		} else if(buf_type == gdalconstConstants.GDT_Int32) {			int[][] ints = new int[bandCount][];			for(int i = 0; i < bandCount; i++) {								ints[i] = new int[pixels];				bands[i].asIntBuffer().get(ints[i]);			}			imgBuffer = new DataBufferInt(ints, pixels);			buffer_type = DataBuffer.TYPE_INT;			sampleModel = new BandedSampleModel(buffer_type, 					xsize, ysize, xsize, banks, offsets);			data_type = BufferedImage.TYPE_CUSTOM;		}		WritableRaster raster = Raster.createWritableRaster(sampleModel, imgBuffer, null);		BufferedImage img = null;		ColorModel cm = null;		if(poBand.GetRasterColorInterpretation() == 			gdalconstConstants.GCI_PaletteIndex) {			data_type = BufferedImage.TYPE_BYTE_INDEXED;			cm = poBand.GetRasterColorTable().getIndexColorModel(								gdal.GetDataTypeSize(buf_type));			img = new BufferedImage(cm, raster, true, null);		} else {			ColorSpace cs = null;			if(bandCount > 2){				cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);				cm = new ComponentColorModel(cs, false, false, 						ColorModel.OPAQUE, buffer_type);				img = new BufferedImage(cm, raster, true, null);			} else {				img = new BufferedImage(xsize, ysize,						data_type);				img.setData(raster);			}		}		return img;	}	public void printLastError() {		System.out.println("Last error: " + gdal.GetLastErrorMsg());		System.out.println("Last error no: " + gdal.GetLastErrorNo());		System.out.println("Last error type: " + gdal.GetLastErrorType());	}	public void actionPerformed(ActionEvent arg0) {		System.out.println("Loading file chooser...");		JFileChooser chooser = new JFileChooser();		int result = chooser.showOpenDialog(this);		if(result == JFileChooser.APPROVE_OPTION) {			/* open the image! */			BufferedImage tmpImage = openFile(chooser.getSelectedFile());			setImage(tmpImage);		}	}	/**	 * @param args	 */	public static void main(String[] args) {		new GDALtest();	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品久久久| 国产精品午夜电影| 东方aⅴ免费观看久久av| 一区二区三区在线观看动漫| 精品理论电影在线| 在线免费观看一区| 成人av在线电影| 玖玖九九国产精品| 亚洲国产欧美日韩另类综合| 国产精品久久午夜| 精品99一区二区三区| 6080国产精品一区二区| 在线看一区二区| 成人福利视频在线| 国产一区二区久久| 久久99精品久久久久婷婷| 一区二区三区精品视频在线| 中文字幕五月欧美| 国产乱人伦精品一区二区在线观看| 56国语精品自产拍在线观看| 日本免费在线视频不卡一不卡二| 日韩视频123| 亚洲综合无码一区二区| 91麻豆免费观看| 视频一区国产视频| 白白色亚洲国产精品| 一区二区三区精品在线| 亚洲国产毛片aaaaa无费看| 成人综合婷婷国产精品久久| 久久久精品影视| 日韩免费一区二区| 日韩一级片在线播放| 欧美一级生活片| 欧美精品日韩精品| 欧美疯狂性受xxxxx喷水图片| 欧美午夜不卡视频| 欧美日韩夫妻久久| 这里只有精品99re| 欧美一级黄色大片| 精品国精品自拍自在线| 欧美成人a∨高清免费观看| 欧美videofree性高清杂交| 日韩欧美在线一区二区三区| 欧美一级理论性理论a| 91精品黄色片免费大全| 91精品国产欧美一区二区18| 欧美一区二区三区视频免费| 在线电影国产精品| 欧美日韩在线一区二区| 欧美精品vⅰdeose4hd| 欧美一区二区久久| 久久精品亚洲国产奇米99| 久久久久久久久久美女| 中文字幕不卡在线播放| 亚洲人成精品久久久久| 一区二区三区不卡视频在线观看| 香蕉久久一区二区不卡无毒影院 | 97精品国产97久久久久久久久久久久| 国产麻豆精品95视频| 成人av网站大全| 欧美系列日韩一区| 91精品一区二区三区久久久久久| 欧美一二三区在线| 久久久久成人黄色影片| 亚洲丝袜另类动漫二区| 一区二区三区免费看视频| 婷婷夜色潮精品综合在线| 九九热在线视频观看这里只有精品| 久久久久久免费| 91精品一区二区三区久久久久久 | 精品中文av资源站在线观看| 国产精品1区2区3区| 91女厕偷拍女厕偷拍高清| 欧美男男青年gay1069videost| 精品日韩在线观看| 亚洲摸摸操操av| 久久国产尿小便嘘嘘| 99久久精品国产观看| 91精品国产91久久综合桃花| 久久久噜噜噜久久中文字幕色伊伊 | 美女在线一区二区| 成人丝袜高跟foot| 欧美电影在哪看比较好| 日本一区二区三区在线观看| 午夜伦欧美伦电影理论片| 国产精品影音先锋| 欧美精品第1页| 国产精品美女一区二区在线观看| 婷婷六月综合亚洲| 99久久久无码国产精品| 日韩亚洲欧美高清| 亚洲人成亚洲人成在线观看图片| 六月丁香婷婷色狠狠久久| 一本久久a久久精品亚洲| 欧美精品一区二区三区视频| 一区二区三区四区在线| 国产美女娇喘av呻吟久久| 欧美午夜精品久久久久久孕妇| 久久―日本道色综合久久| 亚洲电影在线免费观看| av亚洲精华国产精华精华| 精品国产一区二区亚洲人成毛片| 亚洲主播在线播放| 不卡高清视频专区| www一区二区| 蜜芽一区二区三区| 欧美在线啊v一区| 国产精品久久99| 国产盗摄一区二区| 日韩久久久精品| 日韩精品久久久久久| 欧美综合在线视频| 亚洲人精品午夜| 懂色av中文一区二区三区 | 欧美一卡二卡三卡四卡| 一区二区三区 在线观看视频| 成人国产视频在线观看| 久久久蜜桃精品| 国产综合久久久久影院| 欧美一区二区视频网站| 午夜久久久久久| 欧美日韩中文字幕一区二区| 亚洲精品成人悠悠色影视| 不卡视频在线看| 国产精品久久久久影院老司| 成人在线一区二区三区| 久久精品亚洲一区二区三区浴池| 激情综合色播激情啊| 日韩视频在线观看一区二区| 天天综合日日夜夜精品| 在线播放日韩导航| 日本亚洲一区二区| 91精品中文字幕一区二区三区| 亚洲成人福利片| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲少妇中出一区| 色综合久久六月婷婷中文字幕| 国产精品麻豆久久久| 成人app在线| 亚洲色图丝袜美腿| 色一区在线观看| 亚洲综合视频在线观看| 欧美日韩高清在线播放| 日韩国产成人精品| 精品国产麻豆免费人成网站| 国产综合色精品一区二区三区| 精品国产免费一区二区三区香蕉| 国产在线视频一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 不卡在线观看av| 一级做a爱片久久| 91精品国产黑色紧身裤美女| 国内久久婷婷综合| 中文字幕在线不卡一区二区三区 | 日韩三级高清在线| 国产一区二区剧情av在线| 国产精品视频观看| 91年精品国产| 日韩精品乱码免费| 国产三级欧美三级日产三级99 | 亚洲一卡二卡三卡四卡| 日韩一区二区三区电影在线观看| 韩国精品主播一区二区在线观看| 国产网红主播福利一区二区| 91欧美激情一区二区三区成人| 五月天婷婷综合| 精品捆绑美女sm三区| 99久久婷婷国产| 亚洲va韩国va欧美va| 精品捆绑美女sm三区| 99久久久精品| 日韩影院在线观看| 国产片一区二区三区| 欧美日韩精品三区| 国产成人亚洲综合a∨婷婷图片| 亚洲男人的天堂在线观看| 日韩欧美国产麻豆| 成人avav在线| 久久精品99久久久| 亚洲精品写真福利| 欧美精品一区二区久久久| 91在线视频播放地址| 美女一区二区视频| 一区二区三区在线免费观看| 欧美r级在线观看| 色狠狠av一区二区三区| 激情综合网天天干| 一区二区三国产精华液| 久久久亚洲精品石原莉奈| 精品视频资源站| 成人永久看片免费视频天堂| 午夜欧美2019年伦理| 亚洲欧洲av在线| 精品日韩av一区二区| 欧美性猛交一区二区三区精品| 国产成人夜色高潮福利影视| 日本中文一区二区三区| 亚洲精品免费看| 国产女人水真多18毛片18精品视频| 欧美一区欧美二区|