📄 package-summary.html
字号:
<TABLE ALIGN="center" BORDER='3' CELLPADDING='6' BGCOLOR="F4F8FF"> <TR BGCOLOR="#B9DCFF"> <TH><A HREF="http://java.sun.com/j2se/1.4/docs/api/javax/imageio/ImageReader.html" title="class or interface in javax.imageio"><CODE>ImageReader</CODE></A> subclass</TH> <TH>Name</TH> <TH>MIME type</TH> </TR> <TR> <TD><A HREF="../../../../org/geotools/image/io/RawBinaryImageReader.html" title="class in org.geotools.image.io"><CODE>RawBinaryImageReader</CODE></A></TD> <TD>raw</TD> <TD>image/raw</TD> </TR> <TR> <TD><A HREF="../../../../org/geotools/image/io/TextMatrixImageReader.html" title="class in org.geotools.image.io"><CODE>TextMatrixImageReader</CODE></A></TD> <TD>matrix</TD> <TD>text/matrix</TD> </TR> <TR> <TD><A HREF="../../../../org/geotools/image/io/TextRecordImageReader.html" title="class in org.geotools.image.io"><CODE>TextRecordImageReader</CODE></A></TD> <TD>gridded records</TD> <TD>text/x-grid</TD> </TR> </TABLE> <P ALIGN="justify"><A HREF="../../../../org/geotools/image/io/SimpleImageReader.html" title="class in org.geotools.image.io"><CODE>SimpleImageReader</CODE></A> is the base class for image decoders reading stream with few (if any) meta-data. Examples of such streams are matrix containing the pixels values in a binary form (RAW images), or ASCII files containing values written as decimal numbers. Such kinds of stream are not uncommon in the remote sensing field. They often contain geophysical values (e.g. temperature in Celsius degrees, elevation in metres, etc.) better represented as floating point numbers than integers. For example, a user may want to read an ASCII file containing gridded elevation on the ocean floor (left side below). <A HREF="../../../../org/geotools/image/io/TextRecordImageReader.html" title="class in org.geotools.image.io"><CODE>TextRecordImageReader</CODE></A> can read such file, detect automatically minimum and maximum values (in order to scale the grayscale palette) and produce the image below:</P> <P ALIGN="justify"></P> <TABLE ALIGN="center" CELLPADDING='24'> <TR> <TD><PRE>Longitude Latitude Altitude59.9000 -30.0000 -302259.9333 -30.0000 -319459.9667 -30.0000 -388860.0000 -30.0000 -388845.0000 -29.9667 -250245.0333 -29.9667 -250245.0667 -29.9667 -257645.1000 -29.9667 -257645.1333 -29.9667 -262445.1667 -29.9667 -269045.2000 -29.9667 -269045.2333 -29.9667 -269245.2667 -29.9667 -260645.3000 -29.9667 -260645.3333 -29.9667 -2528</PRE>etc...</TD> <TD> <IMG SRC="doc-files/Sandwell.jpeg"> </TD> </TR> </TABLE> <P ALIGN="justify">By default, <A HREF="../../../../org/geotools/image/io/SimpleImageReader.html" title="class in org.geotools.image.io"><CODE>SimpleImageReader</CODE></A> store decoded image using data type <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/awt/image/DataBuffer.html#TYPE_FLOAT" title="class or interface in java.awt.image"><CODE>DataBuffer.TYPE_FLOAT</CODE></A> and a grayscale color space. This politic produce image matching closely the original data, i.e. it involves as few transformations as possible. But displaying floating-point image is usually very slow. User are strongly encourages to use <A HREF="http://java.sun.com/products/java-media/jai/">Java Advanced Imaging</A>'s operations after reading in order to scale data as they see fit. The example below reformat the <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/awt/image/DataBuffer.html#TYPE_FLOAT" title="class or interface in java.awt.image"><CODE>DataBuffer.TYPE_FLOAT</CODE></A> data into <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/awt/image/DataBuffer.html#TYPE_BYTE" title="class or interface in java.awt.image"><CODE>DataBuffer.TYPE_BYTE</CODE></A> and change the grayscale colors to an indexed color model.</P> <P> </P><TABLE align="center" bgcolor="#F8F8F8" border="3" cellpadding="12"><TR><TD nowrap><PRE><FONT color="#0000A0">import <A HREF="http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/JAI.html" title="class or interface in javax.media.jai"><CODE>javax.media.jai.JAI</CODE></A>;import <A HREF="http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/ImageLayout.html" title="class or interface in javax.media.jai"><CODE>javax.media.jai.ImageLayout</CODE></A>;import <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/awt/RenderingHints.html" title="class or interface in java.awt"><CODE>java.awt.RenderingHints</CODE></A>;import <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/awt/image/DataBuffer.html" title="class or interface in java.awt.image"><CODE>java.awt.image.DataBuffer</CODE></A>;import <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/awt/image/IndexColorModel.html" title="class or interface in java.awt.image"><CODE>java.awt.image.IndexColorModel</CODE></A>;import <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/awt/image/renderable/ParameterBlock.html" title="class or interface in java.awt.image.renderable"><CODE>java.awt.image.renderable.ParameterBlock</CODE></A>;<I><FONT color="#008000">// Omitting class and method declaration...</FONT></I><FONT color="#808080"><STRONG>/* * Prepare the indexed color model. Arrays * R, G and B should contains 256 RGB values. */</STRONG></FONT>final byte[] R=...final byte[] G=...final byte[] B=...final IndexColorModel colors = new IndexColorModel(8, 256, R,G,B);final ImageLayout layout = new ImageLayout().setColorModel(colorModel);final RenderingHints hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout);<FONT color="#808080"><STRONG>/* * Rescale the image. First, all pixels values are transformed using * the equation pi=CO+C1*p. Then, type float is clamp to type byte and * the new index color model is set. Displaying such an image should * be much faster. */</STRONG></FONT>final double C0 = ...final double C1 = ...image = JAI.create("Rescale", new ParameterBlock().addSource(image).add(new double[]{C1}).add(new double[]{C0}));image = JAI.create("Format", new ParameterBlock().addSource(image).add(DataBuffer.TYPE_BYTE), hints);</FONT></PRE></TD></TR></TABLE><P><P><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../org/geotools/image/imageio/package-summary.html"><B>PREV PACKAGE</B></A> <A HREF="../../../../org/geotools/image/jai/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A> <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR>Copyright © 1996-2007 <a href="http://www.geotools.org">Geotools</a>. All Rights Reserved.</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -