blob: 3d689908b210f2477e8742cb9c77474166a2bb39 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>PlanarImage (Apache SIS 1.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.sis.image, class: PlanarImage">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.image.PlanarImage class">
<meta name="keywords" content="GRID_GEOMETRY_KEY">
<meta name="keywords" content="POSITIONAL_ACCURACY_KEY">
<meta name="keywords" content="SAMPLE_RESOLUTIONS_KEY">
<meta name="keywords" content="STATISTICS_KEY">
<meta name="keywords" content="MASK_KEY">
<meta name="keywords" content="getSources()">
<meta name="keywords" content="getProperty()">
<meta name="keywords" content="getPropertyNames()">
<meta name="keywords" content="getBounds()">
<meta name="keywords" content="getMinX()">
<meta name="keywords" content="getMinY()">
<meta name="keywords" content="getMinTileX()">
<meta name="keywords" content="getMinTileY()">
<meta name="keywords" content="getNumXTiles()">
<meta name="keywords" content="getNumYTiles()">
<meta name="keywords" content="getTileGridXOffset()">
<meta name="keywords" content="getTileGridYOffset()">
<meta name="keywords" content="getData()">
<meta name="keywords" content="copyData()">
<meta name="keywords" content="verify()">
<meta name="keywords" content="toString()">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../sis.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/PlanarImage.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li><a href="#field-summary">Field</a></li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li><a href="#field-detail">Field</a></li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.image</a></div>
<h1 title="Class PlanarImage" class="title">Class PlanarImage</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
<div class="inheritance">PlanarImage</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="ComputedImage.html" title="class in org.apache.sis.image">Computed­Image</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">PlanarImage</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">RenderedImage</a></span></div>
<div class="block">Base class of <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image</code></a> implementations in Apache SIS.
The "Planar" part in the class name emphases that this image is a representation
of two-dimensional data and should not contain an image with three-dimensional effects.
Planar images can be used as data storage for <a href="../coverage/grid/GridCoverage2D.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Coverage2D</code></a>.
<div class="note"><b>Note: inspirational source</b>
<p>This class takes some inspiration from the <code>javax​.media​.jai​.Planar­Image</code>
class defined in the <cite>Java Advanced Imaging</cite> (<abbr>JAI</abbr>) library.
That excellent library was 20 years in advance on thematic like defining a chain of image operations,
multi-threaded execution, distribution over a computer network, <i>etc.</i>
But unfortunately the <abbr>JAI</abbr> library does not seems to be maintained anymore.
We do not try to reproduce the full set of JAI functionalities here, but we progressively
reproduce some little bits of functionalities as they are needed by Apache SIS.</p></div>
<p>This base class does not store any state,
but assumes that numbering of pixel coordinates and tile indices start at zero.
Subclasses need to implement at least the following methods:</p>
<ul>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getWidth()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Width()</code></a> — the image width in pixels.</li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getHeight()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Height()</code></a> — the image height in pixels.</li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileWidth()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Tile­Width()</code></a> — the tile width in pixels.</li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileHeight()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Tile­Height()</code></a> — the tile height in pixels.</li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTile(int,int)" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Tile(int,int)</code></a> — the tile at given tile indices.</li>
</ul>
<p>If pixel coordinates or tile indices do not start at zero,
then subclasses shall also override the following methods:</p>
<ul>
<li><a href="#getMinX()"><code>get­Min­X()</code></a> — the minimum <var>x</var> coordinate (inclusive) of the image.</li>
<li><a href="#getMinY()"><code>get­Min­Y()</code></a> — the minimum <var>y</var> coordinate (inclusive) of the image.</li>
<li><a href="#getMinTileX()"><code>get­Min­Tile­X()</code></a> — the minimum tile index in the <var>x</var> direction.</li>
<li><a href="#getMinTileY()"><code>get­Min­Tile­Y()</code></a> — the minimum tile index in the <var>y</var> direction.</li>
</ul>
Default implementations are provided for <a href="#getNumXTiles()"><code>get­Num­XTiles()</code></a>, <a href="#getNumYTiles()"><code>get­Num­YTiles()</code></a>,
<a href="#getTileGridXOffset()"><code>get­Tile­Grid­XOffset()</code></a>, <a href="#getTileGridYOffset()"><code>get­Tile­Grid­YOffset()</code></a>, <a href="#getData()"><code>get­Data()</code></a>,
<a href="#getData(java.awt.Rectangle)"><code>get­Data(Rectangle)</code></a> and <a href="#copyData(java.awt.image.WritableRaster)"><code>copy­Data(Writable­Raster)</code></a>
in terms of above methods.
<h2>Writable images</h2>
Some subclasses may implement the <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/WritableRenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Writable­Rendered­Image</code></a> interface. If this image is writable,
then the <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/WritableRenderedImage.html#getWritableTile(int,int)" title="class or interface in java.awt.image" class="external-link"><code>Writable­Rendered­Image​​.get­Writable­Tile(…)</code></a> and
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/WritableRenderedImage.html#releaseWritableTile(int,int)" title="class or interface in java.awt.image" class="external-link"><code>release­Writable­Tile(…)</code></a> methods should be invoked in
<code>try ... finally</code> blocks like below:
<blockquote><pre>WritableRenderedImage image = ...;
WritableRaster tile = image.<b>getWritableTile</b>(tileX, tileY);
<font color="green">try</font> {
<i><font color="gray">// Do some process on the tile.</font></i>
} <font color="green">finally</font> {
image.<b>releaseWritableTile</b>(tileX, tileY);
}</pre></blockquote>
This is recommended because implementations may count the number of acquisitions and releases for deciding
when to notify the <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/TileObserver.html" title="class or interface in java.awt.image" class="external-link"><code>Tile­Observer</code></a>s. Some implementations may also acquire and release
synchronization locks in the <code>get­Writable­Tile(…)</code> and <code>release­Writable­Tile(…)</code> methods.
Apache SIS <a href="https://issues.apache.org/jira/browse/SIS-487">does not yet define a synchronization policy</a>
for <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/WritableRenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Writable­Rendered­Image</code></a>, but such policy may be defined in a future version.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>1.1</dd>
<p><font size="-1">Defined in the <code>sis-feature</code> module</font></p>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#GRID_GEOMETRY_KEY" class="member-name-link">GRID_GEOMETRY_KEY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Key for a property defining a conversion from pixel coordinates to "real world" coordinates.</div>
</div>
<div class="col-first odd-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#MASK_KEY" class="member-name-link">MASK_KEY</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Key of property providing a mask for missing values.</div>
</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#POSITIONAL_ACCURACY_KEY" class="member-name-link">POSITIONAL_ACCURACY_KEY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Estimation of positional accuracy, typically in metres or pixel units.</div>
</div>
<div class="col-first odd-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#SAMPLE_RESOLUTIONS_KEY" class="member-name-link">SAMPLE_RESOLUTIONS_KEY</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Key of a property defining the resolutions of sample values in each band.</div>
</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#STATISTICS_KEY" class="member-name-link">STATISTICS_KEY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Key of property providing statistics on sample values in each band.</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected </code></div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Planar­Image</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new rendered image.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/WritableRaster.html" title="class or interface in java.awt.image" class="external-link">Writable­Raster</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#copyData(java.awt.image.WritableRaster)" class="member-name-link">copy­Data</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/WritableRaster.html" title="class or interface in java.awt.image" class="external-link">Writable­Raster</a>&nbsp;raster)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Copies an arbitrary rectangular region of this image to the supplied writable raster.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/Rectangle.html" title="class or interface in java.awt" class="external-link">Rectangle</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBounds()" class="member-name-link">get­Bounds</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the image location (<var>x</var>, <var>y</var>) and image size (<var>width</var>, <var>height</var>).</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/Raster.html" title="class or interface in java.awt.image" class="external-link">Raster</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getData()" class="member-name-link">get­Data</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a copy of this image as one large tile.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/Raster.html" title="class or interface in java.awt.image" class="external-link">Raster</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getData(java.awt.Rectangle)" class="member-name-link">get­Data</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/Rectangle.html" title="class or interface in java.awt" class="external-link">Rectangle</a>&nbsp;aoi)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a copy of an arbitrary region of this image.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMinTileX()" class="member-name-link">get­Min­Tile­X</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the minimum tile index in the <var>x</var> direction.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMinTileY()" class="member-name-link">get­Min­Tile­Y</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the minimum tile index in the <var>y</var> direction.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMinX()" class="member-name-link">get­Min­X</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the minimum <var>x</var> coordinate (inclusive) of this image.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMinY()" class="member-name-link">get­Min­Y</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the minimum <var>y</var> coordinate (inclusive) of this image.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNumXTiles()" class="member-name-link">get­Num­XTiles</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the number of tiles in the <var>x</var> direction.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNumYTiles()" class="member-name-link">get­Num­YTiles</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the number of tiles in the <var>y</var> direction.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getProperty(java.lang.String)" class="member-name-link">get­Property</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets a property from this image.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPropertyNames()" class="member-name-link">get­Property­Names</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the names of all recognized properties,
or <code>null</code> if this image has no properties.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Vector.html" title="class or interface in java.util" class="external-link">Vector</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSources()" class="member-name-link">get­Sources</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the immediate sources of image data for this image.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTileGridXOffset()" class="member-name-link">get­Tile­Grid­XOffset</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the <var>x</var> coordinate of the upper-left pixel of tile (0, 0).</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTileGridYOffset()" class="member-name-link">get­Tile­Grid­YOffset</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the <var>y</var> coordinate of the upper-left pixel of tile (0, 0).</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">to­String</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a string representation of this image for debugging purpose.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#verify()" class="member-name-link">verify</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Verifies whether image layout information are consistent.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">get­Class</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notify­All</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-RenderedImage">Methods inherited from interface&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">RenderedImage</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getColorModel()" title="class or interface in java.awt.image" class="external-link">get­Color­Model</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getHeight()" title="class or interface in java.awt.image" class="external-link">get­Height</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getSampleModel()" title="class or interface in java.awt.image" class="external-link">get­Sample­Model</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTile(int,int)" title="class or interface in java.awt.image" class="external-link">get­Tile</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileHeight()" title="class or interface in java.awt.image" class="external-link">get­Tile­Height</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileWidth()" title="class or interface in java.awt.image" class="external-link">get­Tile­Width</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getWidth()" title="class or interface in java.awt.image" class="external-link">get­Width</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="GRID_GEOMETRY_KEY">
<h3>GRID_GEOMETRY_KEY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">GRID_GEOMETRY_KEY</span></div>
<div class="block">Key for a property defining a conversion from pixel coordinates to "real world" coordinates.
Other information include an envelope in "real world" coordinates and an estimation of pixel resolution.
The value is a <a href="../coverage/grid/GridGeometry.html" title="class in org.apache.sis.coverage.grid"><code>Grid­Geometry</code></a> instance with following properties:
<ul>
<li>The <a href="../coverage/grid/GridGeometry.html#getDimension()">number of grid dimensions</a> is always 2.</li>
<li>The number of <a href="../coverage/grid/GridGeometry.html#getCoordinateReferenceSystem()">CRS</a> dimensions is always 2.</li>
<li>The <a href="../coverage/grid/GridGeometry.html#getExtent()">grid extent</a> is the <a href="#getBounds()">image bounds</a>.</li>
<li>The <a href="../coverage/grid/GridGeometry.html#getGridToCRS(org.opengis.referencing.datum.PixelInCell)">grid to CRS</a> map pixel coordinates "real world" coordinates
(always two-dimensional).</li>
</ul></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="../coverage/grid/ImageRenderer.html#getImageGeometry(int)"><code>Image­Renderer​.get­Image­Geometry(int)</code></a></li>
<li><a href="../../../../constant-values.html#org.apache.sis.image.PlanarImage.GRID_GEOMETRY_KEY">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="POSITIONAL_ACCURACY_KEY">
<h3>POSITIONAL_ACCURACY_KEY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">POSITIONAL_ACCURACY_KEY</span></div>
<div class="block">Estimation of positional accuracy, typically in metres or pixel units. Pixel positions may have limited accuracy
in they are computed by <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Transformation.html" title="class or interface in org.opengis.referencing.operation" class="external-link">coordinate transformations</a>.
The position may also be inaccurate because of approximation applied for faster rendering.
<p>Values should be instances of <code><a href="http://unitsofmeasurement.github.io/unit-api/site/apidocs/javax/measure/Quantity.html" title="class or interface in javax.measure" class="external-link"><code>Quantity</code></a></code>. The array length
is typically 1 or 2. If accuracy is limited by a coordinate transformation, then the array should contain an
<a href="../referencing/CRS.html#getLinearAccuracy(org.opengis.referencing.operation.CoordinateOperation)">accuracy expressed in a linear unit</a> such as meter.
If accuracy is limited by an <a href="ImageProcessor.html#setPositionalAccuracyHints(javax.measure.Quantity...)">approximation applied during
resampling operation</a>, then the array should contain an accuracy expressed in
<a href="../measure/Units.html#PIXEL">pixel units</a>.</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="ResampledImage.html#POSITIONAL_CONSISTENCY_KEY"><code>Resampled­Image​.POSITIONAL_CONSISTENCY_KEY</code></a></li>
<li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/CoordinateOperation.html#getCoordinateOperationAccuracy()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Coordinate­Operation​.get­Coordinate­Operation­Accuracy()</code></a></li>
<li><a href="../../../../constant-values.html#org.apache.sis.image.PlanarImage.POSITIONAL_ACCURACY_KEY">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="SAMPLE_RESOLUTIONS_KEY">
<h3>SAMPLE_RESOLUTIONS_KEY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">SAMPLE_RESOLUTIONS_KEY</span></div>
<div class="block">Key of a property defining the resolutions of sample values in each band. This property is recommended
for images having sample values as floating point numbers. For example if sample values were computed by
<var>value</var> = <var>integer</var> × <var>scale factor</var>, then the resolution is the scale factor.
This information can be used for choosing the number of fraction digits to show when writing sample values
in text format.
<p>Values should be instances of <code>double[]</code>.
The array length should be the number of bands. This property may be computed automatically during
<a href="../coverage/grid/GridCoverage.html#forConvertedValues(boolean)">conversions from
integer values to floating point values</a>.</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../constant-values.html#org.apache.sis.image.PlanarImage.SAMPLE_RESOLUTIONS_KEY">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="STATISTICS_KEY">
<h3>STATISTICS_KEY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">STATISTICS_KEY</span></div>
<div class="block">Key of property providing statistics on sample values in each band. Providing a value for this key
is recommended when those statistics are known in advance (for example if they are provided in some
metadata of a raster format). Statistics are useful for stretching a color palette over the values
actually used in an image.
<p>Values should be instances of <code><a href="../math/Statistics.html" title="class in org.apache.sis.math">Statistics</a>[]</code>.
The array length should be the number of bands. If this property is not provided, Apache SIS
may have to <a href="ImageProcessor.html#statistics(java.awt.image.RenderedImage,java.awt.Shape,java.util.function.DoubleUnaryOperator...)">compute statistics itself</a>
(by iterating over pixel values) when needed.</p>
<p>Statistics are only indicative. They may be computed on an image sub-region.</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="ImageProcessor.html#statistics(java.awt.image.RenderedImage,java.awt.Shape,java.util.function.DoubleUnaryOperator...)"><code>Image­Processor​.statistics(Rendered­Image, Shape, Double­Unary­Operator...)</code></a></li>
<li><a href="../../../../constant-values.html#org.apache.sis.image.PlanarImage.STATISTICS_KEY">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="MASK_KEY">
<h3>MASK_KEY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">MASK_KEY</span></div>
<div class="block">Key of property providing a mask for missing values. Values should be instances of <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image</code></a>
with a single band, binary sample values and a color model of <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/Transparency.html#BITMASK" title="class or interface in java.awt" class="external-link"><code>Transparency​.BITMASK</code></a> type.
The binary values 0 and 1 are alpha values: 0 for fully transparent pixels and 1 for fully opaque pixels.
For every pixel (<var>x</var>,<var>y</var>) in this image, the pixel at the same coordinates in the mask
is either fully transparent (sample value 0) if the sample value in this image is valid, or fully opaque
(sample value 1) if the sample value in this image is invalid (<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Float.html#NaN" title="class or interface in java.lang" class="external-link"><code>Float​.Na­N</code></a>).
<p>If this <code>Planar­Image</code> has more than one band, then the value for this property is the overlay of
masks of each band: pixels are 0 when sample values are valid in all bands, and 1 when sample value is
invalid in at least one band.</p>
<p>Note that it is usually not necessary to use masks explicitly in Apache SIS because missing values
are represented by <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Float.html#NaN" title="class or interface in java.lang" class="external-link"><code>Float​.Na­N</code></a>. This property is provided for algorithms that cannot work with
NaN values.</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../constant-values.html#org.apache.sis.image.PlanarImage.MASK_KEY">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>PlanarImage</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">PlanarImage</span>()</div>
<div class="block">Creates a new rendered image.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getSources()">
<h3>getSources</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Vector.html" title="class or interface in java.util" class="external-link">Vector</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">RenderedImage</a>&gt;</span>&nbsp;<span class="element-name">getSources</span>()</div>
<div class="block">Returns the immediate sources of image data for this image.
This method returns <code>null</code> if the image has no information about its immediate sources.
It returns an empty vector if the image object has no immediate sources.
<p>The default implementation returns <code>null</code>.
Note that this is not equivalent to an empty vector.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getSources()" title="class or interface in java.awt.image" class="external-link">get­Sources</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>the immediate sources, or <code>null</code> if unknown.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getProperty(java.lang.String)">
<h3>getProperty</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">getProperty</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;key)</span></div>
<div class="block">Gets a property from this image. The property to get is identified by the specified key.
The set of available keys is given by <a href="#getPropertyNames()"><code>get­Property­Names()</code></a> and depends on the image instance.
The following table gives examples of keys recognized by some Apache SIS <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image</code></a> instances:
<table class="sis">
<caption>Examples of property keys</caption>
<tr>
<th>Keys</th>
<th>Values</th>
</tr><tr>
<td><a href="#GRID_GEOMETRY_KEY">"org.apache.sis.GridGeometry"</a></td>
<td>Conversion from pixel coordinates to "real world" coordinates.</td>
</tr><tr>
<td><a href="#POSITIONAL_ACCURACY_KEY">"org.apache.sis.PositionalAccuracy"</a></td>
<td>Estimation of positional accuracy, typically in metres or pixel units.</td>
</tr><tr>
<td><a href="#SAMPLE_RESOLUTIONS_KEY">"org.apache.sis.SampleResolution"</a></td>
<td>Resolutions of sample values in each band.</td>
</tr><tr>
<td><a href="#STATISTICS_KEY">"org.apache.sis.Statistics"</a></td>
<td>Minimum, maximum and mean values for each band.</td>
</tr><tr>
<td><a href="#MASK_KEY">"org.apache.sis.Mask"</a></td>
<td>Image with transparent pixels at locations of valid values and opaque pixels elsewhere.</td>
</tr><tr>
<td><a href="ResampledImage.html#POSITIONAL_CONSISTENCY_KEY">"org.apache.sis.PositionalConsistency"</a></td>
<td>Estimation of positional error for each pixel as a consistency check.</td>
</tr><tr>
<td><a href="ComputedImage.html#SOURCE_PADDING_KEY">"org.apache.sis.SourcePadding"</a></td>
<td>Amount of additional source pixels needed on each side of a destination pixel for computing its value.</td>
</tr>
</table>
This method shall return <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/Image.html#UndefinedProperty" title="class or interface in java.awt" class="external-link"><code>Image​.Undefined­Property</code></a> if the specified property is not defined.
The default implementation returns <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/Image.html#UndefinedProperty" title="class or interface in java.awt" class="external-link"><code>Image​.Undefined­Property</code></a> in all cases.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getProperty(java.lang.String)" title="class or interface in java.awt.image" class="external-link">get­Property</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Parameters:</dt>
<dd><code>key</code> - the name of the property to get.</dd>
<dt>Returns:</dt>
<dd>the property value, or <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/Image.html#UndefinedProperty" title="class or interface in java.awt" class="external-link"><code>Image​.Undefined­Property</code></a> if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPropertyNames()">
<h3>getPropertyNames</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name">getPropertyNames</span>()</div>
<div class="block">Returns the names of all recognized properties,
or <code>null</code> if this image has no properties.
<p>The default implementation returns <code>null</code>.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getPropertyNames()" title="class or interface in java.awt.image" class="external-link">get­Property­Names</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>names of all recognized properties, or <code>null</code> if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getBounds()">
<h3>getBounds</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/Rectangle.html" title="class or interface in java.awt" class="external-link">Rectangle</a></span>&nbsp;<span class="element-name">getBounds</span>()</div>
<div class="block">Returns the image location (<var>x</var>, <var>y</var>) and image size (<var>width</var>, <var>height</var>).
This is a convenience method encapsulating the results of 4 method calls in a single object.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the image location and image size as a new rectangle.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="#getMinX()"><code>get­Min­X()</code></a></li>
<li><a href="#getMinY()"><code>get­Min­Y()</code></a></li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getWidth()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Width()</code></a></li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getHeight()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Height()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMinX()">
<h3>getMinX</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getMinX</span>()</div>
<div class="block">Returns the minimum <var>x</var> coordinate (inclusive) of this image.
<p>Default implementation returns zero.
Subclasses shall override this method if the image starts at another coordinate.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinX()" title="class or interface in java.awt.image" class="external-link">get­Min­X</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>the minimum <var>x</var> coordinate (column) of this image.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMinY()">
<h3>getMinY</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getMinY</span>()</div>
<div class="block">Returns the minimum <var>y</var> coordinate (inclusive) of this image.
<p>The default implementation returns zero.
Subclasses shall override this method if the image starts at another coordinate.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinY()" title="class or interface in java.awt.image" class="external-link">get­Min­Y</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>the minimum <var>y</var> coordinate (row) of this image.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMinTileX()">
<h3>getMinTileX</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getMinTileX</span>()</div>
<div class="block">Returns the minimum tile index in the <var>x</var> direction.
<p>The default implementation returns zero.
Subclasses shall override this method if the tile grid starts at another index.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinTileX()" title="class or interface in java.awt.image" class="external-link">get­Min­Tile­X</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>the minimum tile index in the <var>x</var> direction.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMinTileY()">
<h3>getMinTileY</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getMinTileY</span>()</div>
<div class="block">Returns the minimum tile index in the <var>y</var> direction.
<p>The default implementation returns zero.
Subclasses shall override this method if the tile grid starts at another index.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getMinTileY()" title="class or interface in java.awt.image" class="external-link">get­Min­Tile­Y</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>the minimum tile index in the <var>y</var> direction.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNumXTiles()">
<h3>getNumXTiles</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getNumXTiles</span>()</div>
<div class="block">Returns the number of tiles in the <var>x</var> direction.
<p>The default implementation computes this value from <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getWidth()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Width()</code></a> and <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileWidth()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Tile­Width()</code></a>
on the assumption that <a href="#getMinX()"><code>get­Min­X()</code></a> is the coordinate of the leftmost pixels of tiles located at
<a href="#getMinTileX()"><code>get­Min­Tile­X()</code></a> index. This assumption can be verified by <a href="#verify()"><code>verify()</code></a>.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getNumXTiles()" title="class or interface in java.awt.image" class="external-link">get­Num­XTiles</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>returns the number of tiles in the <var>x</var> direction.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNumYTiles()">
<h3>getNumYTiles</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getNumYTiles</span>()</div>
<div class="block">Returns the number of tiles in the <var>y</var> direction.
<p>The default implementation computes this value from <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getHeight()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Height()</code></a> and <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileHeight()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Tile­Height()</code></a>
on the assumption that <a href="#getMinY()"><code>get­Min­Y()</code></a> is the coordinate of the uppermost pixels of tiles located at
<a href="#getMinTileY()"><code>get­Min­Tile­Y()</code></a> index. This assumption can be verified by <a href="#verify()"><code>verify()</code></a>.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getNumYTiles()" title="class or interface in java.awt.image" class="external-link">get­Num­YTiles</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>returns the number of tiles in the <var>y</var> direction.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTileGridXOffset()">
<h3>getTileGridXOffset</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getTileGridXOffset</span>()</div>
<div class="block">Returns the <var>x</var> coordinate of the upper-left pixel of tile (0, 0).
That tile (0, 0) may not actually exist.
<p>The default implementation computes this value from <a href="#getMinX()"><code>get­Min­X()</code></a>,
<a href="#getMinTileX()"><code>get­Min­Tile­X()</code></a> and <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileWidth()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Tile­Width()</code></a>.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileGridXOffset()" title="class or interface in java.awt.image" class="external-link">get­Tile­Grid­XOffset</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>the <var>x</var> offset of the tile grid relative to the origin.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTileGridYOffset()">
<h3>getTileGridYOffset</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getTileGridYOffset</span>()</div>
<div class="block">Returns the <var>y</var> coordinate of the upper-left pixel of tile (0, 0).
That tile (0, 0) may not actually exist.
<p>The default implementation computes this value from <a href="#getMinY()"><code>get­Min­Y()</code></a>,
<a href="#getMinTileY()"><code>get­Min­Tile­Y()</code></a> and <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileHeight()" title="class or interface in java.awt.image" class="external-link"><code>Rendered­Image​.get­Tile­Height()</code></a>.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getTileGridYOffset()" title="class or interface in java.awt.image" class="external-link">get­Tile­Grid­YOffset</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>the <var>y</var> offset of the tile grid relative to the origin.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getData()">
<h3>getData</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/Raster.html" title="class or interface in java.awt.image" class="external-link">Raster</a></span>&nbsp;<span class="element-name">getData</span>()</div>
<div class="block">Returns a copy of this image as one large tile.
The returned raster will not be updated if this image is changed.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getData()" title="class or interface in java.awt.image" class="external-link">get­Data</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Returns:</dt>
<dd>a copy of this image as one large tile.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getData(java.awt.Rectangle)">
<h3>getData</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/Raster.html" title="class or interface in java.awt.image" class="external-link">Raster</a></span>&nbsp;<span class="element-name">getData</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/Rectangle.html" title="class or interface in java.awt" class="external-link">Rectangle</a>&nbsp;aoi)</span></div>
<div class="block">Returns a copy of an arbitrary region of this image.
The returned raster will not be updated if this image is changed.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#getData(java.awt.Rectangle)" title="class or interface in java.awt.image" class="external-link">get­Data</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Parameters:</dt>
<dd><code>aoi</code> - the region of this image to copy.</dd>
<dt>Returns:</dt>
<dd>a copy of this image in the given area of interest.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">Illegal­Argument­Exception</a></code> - if the given rectangle is not contained in this image bounds.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="copyData(java.awt.image.WritableRaster)">
<h3>copyData</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/WritableRaster.html" title="class or interface in java.awt.image" class="external-link">WritableRaster</a></span>&nbsp;<span class="element-name">copyData</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/WritableRaster.html" title="class or interface in java.awt.image" class="external-link">WritableRaster</a>&nbsp;raster)</span></div>
<div class="block">Copies an arbitrary rectangular region of this image to the supplied writable raster.
The region to be copied is determined from the bounds of the supplied raster.
The supplied raster must have a <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/SampleModel.html" title="class or interface in java.awt.image" class="external-link"><code>Sample­Model</code></a> that is compatible with this image.
If the raster is <code>null</code>, an raster is created by this method.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html#copyData(java.awt.image.WritableRaster)" title="class or interface in java.awt.image" class="external-link">copy­Data</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/image/RenderedImage.html" title="class or interface in java.awt.image" class="external-link">Rendered­Image</a></code></dd>
<dt>Parameters:</dt>
<dd><code>raster</code> - the raster to hold a copy of this image, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>the given raster if it was not-null, or a new raster otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="verify()">
<h3>verify</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">verify</span>()</div>
<div class="block">Verifies whether image layout information are consistent. This method verifies that the coordinates
of image upper-left corner are equal to the coordinates of the upper-left corner of the tile in the
upper-left corner, and that image size is equal to the sum of the sizes of all tiles. Compatibility
of sample model and color model is also verified.
<p>The default implementation may return the following identifiers, in that order
(i.e. this method returns the identifier of the first test that fail):</p>
<table class="sis">
<caption>Identifiers of inconsistent values</caption>
<tr><th>Identifier</th> <th>Meaning</th></tr>
<tr><td><code>"SampleModel"</code></td> <td>Sample model is incompatible with color model.</td></tr>
<tr><td><code>"tileWidth"</code></td> <td>Tile width is greater than sample model width.</td></tr>
<tr><td><code>"tileHeight"</code></td> <td>Tile height is greater than sample model height.</td></tr>
<tr><td><code>"numXTiles"</code></td> <td>Number of tiles on the X axis is inconsistent with image width.</td></tr>
<tr><td><code>"numYTiles"</code></td> <td>Number of tiles on the Y axis is inconsistent with image height.</td></tr>
<tr><td><code>"tileX"</code></td> <td><code>minTileX</code> and/or <code>tile­Grid­XOffset</code> is inconsistent.</td></tr>
<tr><td><code>"tileY"</code></td> <td><code>minTileY</code> and/or <code>tile­Grid­YOffset</code> is inconsistent.</td></tr>
<tr><td><code>"width"</code></td> <td>image width is not an integer multiple of tile width.</td></tr>
<tr><td><code>"height"</code></td> <td>Image height is not an integer multiple of tile height.</td></tr>
</table>
Subclasses may perform additional checks. For example, some subclasses have specialized checks
for <code>"min­X"</code>, <code>"min­Y"</code>, <code>"tile­Grid­XOffset"</code> and <code>"tile­Grid­YOffset"</code>
values before to fallback on the more generic <code>"tile­X"</code> and <code>"tile­Y"</code> above checks.
<h4>Ignorable inconsistency</h4>
Inconsistency in <code>"width"</code> and <code>"height"</code> values may be acceptable
if all other verifications pass (in particular the <code>"num­XTiles"</code> and <code>"num­YTiles"</code> checks).
It happens when tiles in the last row or last column have some unused space compared to the image size.
This is legal in TIFF format for example. For this reason, the <code>"width"</code> and <code>"height"</code>
values should be checked last, after all other values have been verified consistent.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>null</code> if image layout information are consistent,
or the name of inconsistent attribute if a problem is found.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<div class="block">Returns a string representation of this image for debugging purpose.
This string representation may change in any future SIS version.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
<dt>Returns:</dt>
<dd>a string representation of this image for debugging purpose only.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2010&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>