001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/processing/raster/BufferedImageDataMatrix.java $
002: /*---------------- FILE HEADER ------------------------------------------
003:
004: This file is part of deegree.
005: Copyright (C) 2001-2008 by:
006: EXSE, Department of Geography, University of Bonn
007: http://www.giub.uni-bonn.de/deegree/
008: lat/lon GmbH
009: http://www.lat-lon.de
010:
011: This library is free software; you can redistribute it and/or
012: modify it under the terms of the GNU Lesser General Public
013: License as published by the Free Software Foundation; either
014: version 2.1 of the License, or (at your option) any later version.
015:
016: This library is distributed in the hope that it will be useful,
017: but WITHOUT ANY WARRANTY; without even the implied warranty of
018: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: Lesser General Public License for more details.
020:
021: You should have received a copy of the GNU Lesser General Public
022: License along with this library; if not, write to the Free Software
023: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024:
025: Contact:
026:
027: Andreas Poth
028: lat/lon GmbH
029: Aennchenstr. 19
030: 53177 Bonn
031: Germany
032: E-Mail: poth@lat-lon.de
033:
034: Prof. Dr. Klaus Greve
035: Department of Geography
036: University of Bonn
037: Meckenheimer Allee 166
038: 53115 Bonn
039: Germany
040: E-Mail: greve@giub.uni-bonn.de
041:
042: ---------------------------------------------------------------------------*/
043: package org.deegree.processing.raster;
044:
045: import java.awt.image.BufferedImage;
046: import java.awt.image.DataBuffer;
047:
048: /**
049: *
050: *
051: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
052: * @author last edited by: $Author: rbezema $
053: *
054: * @version $Revision: 10609 $, $Date: 2008-03-18 01:46:37 -0700 (Tue, 18 Mar 2008) $
055: */
056: public class BufferedImageDataMatrix implements DataMatrix {
057:
058: private int width = 0;
059:
060: private int height = 0;
061:
062: private DataBuffer data = null;
063:
064: /**
065: *
066: * @param bi
067: */
068: public BufferedImageDataMatrix(BufferedImage bi) {
069: data = bi.getData().getDataBuffer();
070: height = bi.getHeight();
071: width = bi.getWidth();
072: }
073:
074: /**
075: * @param x
076: * @param y
077: * @return the float values at x,y.
078: */
079: public double[] getCellAt(int x, int y) {
080: int index = (width * y) + x;
081: double[] val = new double[data.getNumBanks()];
082: for (int i = 0; i < val.length; i++) {
083: val[i] = data.getElemFloat(index, i);
084: }
085: return val;
086: }
087:
088: /**
089: * returns the data matrix width (number of cells in x-direction)
090: *
091: * @return the data matrix width (number of cells in x-direction)
092: */
093: public int getHeight() {
094: return height;
095: }
096:
097: /**
098: * returns the data matrix height (number of cells in y-direction)
099: *
100: * @return the data matrix height (number of cells in y-direction)
101: */
102: public int getWidth() {
103: return width;
104: }
105:
106: }
|