📄 image acquisition and display.htm
字号:
<P></P>
<TD><CODE>source</CODE>
<P></P>
<TD>the <CODE>WritableRenderedImage</CODE> for which we are an
observer.
<P></P>
<TR vAlign=top>
<TD><CODE>tileX</CODE>
<P></P>
<TD>the <EM>x</EM> index of the tile.
<P></P>
<TR vAlign=top>
<TD><CODE>tileY</CODE>
<P></P>
<TD>the <EM>y</EM> index of the tile.
<P></P>
<TR vAlign=top>
<TD><CODE>willBeWrit-able</CODE>
<P></P>
<TD>true if the tile is becoming writable.
<P></P></TR></TBODY></TABLE>
<P></A>
<P></P></DD></DL><PRE><UL>
<LI>PlanarImage createSnapshot()
<P></P></LI></UL></PRE>
<DL><A name=57427>
<DT>
<DD>creates a snapshot of this image. This snapshot may be used
indefinitely, and will always appear to have the pixel data that this image
has currently. The snapshot is semantically a copy of this image but may be
implemented in a more efficient manner. Multiple snapshots taken at
different times may share tiles that have not changed, and tiles that are
currently static in this image's source do not need to be copied at all.
</A>
<P></P></DD></DL><A name=54570>
<H4>4.2.3.3 <IMG src="Image Acquisition and Display.files/space.gif">Disposing
of a Snapshot Image</H4></A>When a <CODE>Snapshot</CODE> is no longer needed,
its <CODE>dispose()</CODE> method may be called. The <CODE>dispose()</CODE>
method will be called automatically when the <CODE>Snapshot</CODE> is
finalized by the garbage collector. The <CODE>dispose()</CODE> method attempts
to push the contents of its tile cache back to the previous
<CODE>Snapshot</CODE> in the linked list. If that image possesses a version of
the same tile, the tile is not pushed back and may be discarded.
<P>Disposing of the <CODE>Snapshot</CODE> allows tile data held by the
Snapshot that is not needed by any other <CODE>Snapshot</CODE> to be disposed
of as well.
<P>
<TABLE border=0>
<TBODY>
<TR>
<TD><IMG src="Image Acquisition and Display.files/cistine.gif"></TD>
<TD>
<HR>
<B>API:</B> <CODE>javax.media.jai.PlanarImage </CODE>
<HR>
</TD></TR></TBODY></TABLE><PRE><UL>
<LI>void dispose()
<P></P></LI></UL></PRE>
<DL><A name=55115>
<DT>
<DD>provides a hint that an image will no longer be accessed from a
reference in user space. The results are equivalent to those that occur when
the program loses its last reference to this image, the garbage collector
discovers this, and finalize is called. This can be used as a hint in
situations where waiting for garbage collection would be overly
conservative. </A>
<P></P></DD></DL><A name=77770>
<H3>4.2.4 <IMG src="Image Acquisition and Display.files/space.gif">Remote
Image</H3></A>A <CODE>RemoteImage</CODE> is a sub-class of
<CODE>PlanarImage</CODE> which represents an image on a remote server. A
<CODE>RemoteImage</CODE> may be constructed from a <CODE>RenderedImage</CODE>
or from an imaging chain in either the rendered or renderable modes. For more
information, see <A
href="http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/Client-server.doc.html#47285">Chapter
12, "Client-Server Imaging</A>."
<P><A name=53305>
<H3>4.2.5 <IMG src="Image Acquisition and Display.files/space.gif">Collection
Image</H3></A>The <CODE>CollectionImage</CODE> class is an abstract superclass
for classes representing groups of images. Examples of groups of images
include pyramids (<CODE>ImagePyramid</CODE>), time sequences
(<CODE>ImageSequence</CODE>), and planar slices stacked to form a volume
(<CODE>ImageStack</CODE>).
<P>
<TABLE border=0>
<TBODY>
<TR>
<TD><IMG src="Image Acquisition and Display.files/cistine.gif"></TD>
<TD>
<HR>
<B>API:</B> <CODE>javax.media.jai.CollectionImage </CODE>
<HR>
</TD></TR></TBODY></TABLE><PRE><UL>
<LI>CollectionImage()
<P></P></LI></UL></PRE>
<DL><A name=54682>
<DT>
<DD>the default constructor. </A>
<P></P></DD></DL><PRE><UL>
<LI>CollectionImage(java.util.Collection images)
<P></P></LI></UL></PRE>
<DL><A name=54248>
<DT>
<DD>constructs a <CODE>CollectionImage</CODE> object from a Vector of
<CODE>ImageJAI</CODE> objects.
<P>
<TABLE cellPadding=3 border=3>
<CAPTION><FONT size=-1><B></B></FONT></CAPTION>
<TBODY>
<TR vAlign=top>
<TD><EM>Parameters</EM>:
<P></P>
<TD><CODE>images</CODE>
<P></P>
<TD>A Vector of <CODE>ImageJAI</CODE> objects.
<P></P></TR></TBODY></TABLE>
<P></A>
<P></P></DD></DL><A name=77784>
<H3>4.2.6 <IMG src="Image Acquisition and Display.files/space.gif">Image
Sequence</H3></A>The <CODE>ImageSequence</CODE> class represents a sequence of
images with associated timestamps and a camera position. It can be used to
represent video or time-lapse photography.
<P>The images are of the type <CODE>ImageJAI</CODE>. The timestamps are of the
type <CODE>long</CODE>. The camera positions are of the type
<CODE>Point</CODE>. The tuple (image, time stamp, camera position) is
represented by class <CODE>SequentialImage</CODE>.
<P>
<TABLE border=0>
<TBODY>
<TR>
<TD><IMG src="Image Acquisition and Display.files/cistine.gif"></TD>
<TD>
<HR>
<B>API:</B> <CODE>javax.media.jai.ImageSequence </CODE>
<HR>
</TD></TR></TBODY></TABLE><PRE><UL>
<LI>ImageSequence(Collection images)
<P></P></LI></UL></PRE>
<DL><A name=77790>
<DT>
<DD>constructs a class that represents a sequence of images from a
collection of <CODE>SequentialImage</CODE>. </A>
<P></P></DD></DL><A name=77800>
<H3>4.2.7 <IMG src="Image Acquisition and Display.files/space.gif">Image
Stack</H3></A>The <CODE>ImageStack</CODE> class represents a stack of images,
each with a defined spatial orientation in a common coordinate system. This
class can be used to represent CT scans or seismic volumes.
<P>The images are of the type <CODE>javax.media.jai.PlanarImage</CODE>; the
coordinates are of the type <CODE>javax.media.jai.Coordinate</CODE>. The tuple
(image, coordinate) is represented by class
<CODE>javax.media.jai.CoordinateImage</CODE>.
<P>
<TABLE border=0>
<TBODY>
<TR>
<TD><IMG src="Image Acquisition and Display.files/cistine.gif"></TD>
<TD>
<HR>
<B>API:</B> <CODE>javax.media.jai.ImageStack </CODE>
<HR>
</TD></TR></TBODY></TABLE><PRE><UL>
<LI>ImageStack(Collection images)
<P></P></LI></UL></PRE>
<DL><A name=77806>
<DT>
<DD>constructs an <CODE>ImageStack</CODE> object from a collection of
<CODE>CoordinateImage</CODE>. </A>
<P></P></DD></DL><PRE><UL>
<LI>ImageJAI getImage(Coordinate coordinate)
<P></P></LI></UL></PRE>
<DL><A name=77808>
<DT>
<DD>returns the image associated with the specified coordinate. </A>
<P></P></DD></DL><PRE><UL>
<LI>Coordinate getCoordinate(ImageJAI image)
<P></P></LI></UL></PRE>
<DL><A name=77810>
<DT>
<DD>returns the coordinate associated with the specified image. </A>
<P></P></DD></DL><A name=55720>
<H3>4.2.8 <IMG src="Image Acquisition and Display.files/space.gif">Image MIP
Map</H3></A>An image MIP map is a stack of images with a fixed operational
relationship between adjacent slices. Given the highest-resolution slice, the
others may be derived in turn by performing a particular operation. Data may
be extracted slice by slice or by special iterators.
<P>A MIP map image (<EM>MIP</EM> stands for the Latin <EM>multim im
parvo</EM>, meaning "many things in a small space") is usually associated with
texture mapping. In texture mapping, the MIP map image contains
different-sized versions of the same image in one location. To use mipmapping
for texture mapping, you provide all sizes of the image in powers of 2 from
the largest image to a 1 x 1 map.
<P>The <CODE>ImageMIPMap</CODE> class takes the original source image at the
highest resolution level, considered to be level 0, and a RenderedOp chain
that defines how the image at the next lower resolution level is derived from
the current resolution level.
<P>The RenderedOp chain may have multiple operations, but the first operation
in the chain must take only one source image, which is the image at the
current resolution level.
<P>There are three <CODE>ImageMIPMap</CODE> constructors:
<P><PRE><UL>
<LI>ImageMIPMap(RenderedImage image, AffineTransform transform,
Interpolation interpolation)
<P></P></LI></UL></PRE>
<DL><A name=82542>
<DT>
<DD>This constructor assumes that the operation used to derive the next
lower resolution is a standard <EM>affine</EM> operation.
<P>
<TABLE cellPadding=3 border=3>
<CAPTION><FONT size=-1><B></B></FONT></CAPTION>
<TBODY>
<TR vAlign=top>
<TD rowSpan=3><EM>Parameters</EM>:
<P></P>
<TD><CODE>image</CODE>
<P></P>
<TD>The image at the highest resolution level.
<P></P>
<TR vAlign=top>
<TD><CODE>transform</CODE>
<P></P>
<TD>The affine transform matrix used by "affine" operation.
<P></P>
<TR vAlign=top>
<TD><CODE>interpolation</CODE>
<P></P>
<TD>The interpolation method used by "affine" operation.
<P></P></TR></TBODY></TABLE>
<P></A>
<P><A name=82627></P>
<DT>
<DD>Any number of versions of the original image may be derived by an affine
transform representing the geometric relationship between levels of the MIP
map. The affine transform may include translation, scaling, and rotation
(see <A
href="http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/Geom-image-manip.doc.html#51275">"Affine
Transformation" on page 272</A>). </A>
<P></P></DD></DL><PRE><UL>
<LI>ImageMIPMap(RenderedImage image, RenderedOp downSampler)
<P></P></LI></UL></PRE>
<DL><A name=82582>
<DT>
<DD>This constructor specifies the <CODE>downSampler</CODE>, which points to
the RenderedOp chain used to derive the next lower resolution level.
<P>
<TABLE cellPadding=3 border=3>
<CAPTION><FONT size=-1><B></B></FONT></CAPTION>
<TBODY>
<TR vAlign=top>
<TD rowSpan=2><EM>Parameters</EM>:
<P></P>
<TD><CODE>image</CODE>
<P></P>
<TD>The image at the highest resolution level.
<P></P>
<TR vAlign=top>
<TD><CODE>downsampler</CODE>
<P></P>
<TD>The RenderedOp chain used to derive the next lower resolution
level. The first operation of this chain must take one source, but
must not have a source specified.
<P></P></TR></TBODY></TABLE>
<P></A>
<P></P></DD></DL><PRE><UL>
<LI>ImageMIPMap(RenderedOp downSampler)
<P></P></LI></UL></PRE>
<DL><A name=82622>
<DT>
<DD>This constructor specifies only the
<CODE>downSampler</CODE>.<CODE></CODE> </A>
<P></P></DD></DL>The <CODE>downSampler</CODE> is a chain of operations used to
derive the image at the next lower resolution level from the image at the
current resolution level. That is, given an image at resolution level
<EM>i</EM>, the <CODE>downSampler</CODE> is used to obtain the image at
resolution level <EM>i</EM> + 1. The chain may contain one or more operation
nodes; however, each node must be a <CODE>RenderedOp</CODE>.
<P>The <CODE>downsampler</CODE> parameter points to the last node in the
chain. The very first node in the chain must be a <CODE>RenderedOp</CODE> that
takes one <CODE>RenderedImage</CODE> as its source. All other nodes may have
multiple sources. When traversing back up the chain, if a node has more than
one source, the first source, <CODE>source0</CODE>, is used to move up the
chain. This parameter is saved by reference.
<P><A
href="http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/Acquisition.doc.html#82858">Listing
4-3</A> shows a complete code example of the use of <CODE>ImageMIPMap</CODE>.
<P><CAPTION><FONT size=-1><B><A name=82858>
<CENTER><FONT size=-1><B><I>Listing 4-3 </I><IMG
src="Image Acquisition and Display.files/sm-blank.gif" border=0> Example use
of ImageMIPMap (Sheet 1 of 3)</B></FONT></CENTER></A>
<P></B></FONT></CAPTION>
<HR>
<TR valign="top"><TD rowspan="11" colspan="1"><PRE> import java.awt.geom.AffineTransform;
import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
im
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -