Home | History | Annotate | Download | only in turbojpeg
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      2 <!-- NewPage -->
      3 <html lang="en">
      4 <head>
      5 <title>YUVImage</title>
      6 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
      7 </head>
      8 <body>
      9 <script type="text/javascript"><!--
     10     if (location.href.indexOf('is-external=true') == -1) {
     11         parent.document.title="YUVImage";
     12     }
     13 //-->
     14 </script>
     15 <noscript>
     16 <div>JavaScript is disabled on your browser.</div>
     17 </noscript>
     18 <!-- ========= START OF TOP NAVBAR ======= -->
     19 <div class="topNav"><a name="navbar_top">
     20 <!--   -->
     21 </a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
     22 <!--   -->
     23 </a>
     24 <ul class="navList" title="Navigation">
     25 <li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
     26 <li class="navBarCell1Rev">Class</li>
     27 <li><a href="package-tree.html">Tree</a></li>
     28 <li><a href="../../../deprecated-list.html">Deprecated</a></li>
     29 <li><a href="../../../index-all.html">Index</a></li>
     30 <li><a href="../../../help-doc.html">Help</a></li>
     31 </ul>
     32 </div>
     33 <div class="subNav">
     34 <ul class="navList">
     35 <li><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
     36 <li>Next Class</li>
     37 </ul>
     38 <ul class="navList">
     39 <li><a href="../../../index.html?org/libjpegturbo/turbojpeg/YUVImage.html" target="_top">Frames</a></li>
     40 <li><a href="YUVImage.html" target="_top">No Frames</a></li>
     41 </ul>
     42 <ul class="navList" id="allclasses_navbar_top">
     43 <li><a href="../../../allclasses-noframe.html">All Classes</a></li>
     44 </ul>
     45 <div>
     46 <script type="text/javascript"><!--
     47   allClassesLink = document.getElementById("allclasses_navbar_top");
     48   if(window==top) {
     49     allClassesLink.style.display = "block";
     50   }
     51   else {
     52     allClassesLink.style.display = "none";
     53   }
     54   //-->
     55 </script>
     56 </div>
     57 <div>
     58 <ul class="subNavList">
     59 <li>Summary:&nbsp;</li>
     60 <li>Nested&nbsp;|&nbsp;</li>
     61 <li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
     62 <li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
     63 <li><a href="#method_summary">Method</a></li>
     64 </ul>
     65 <ul class="subNavList">
     66 <li>Detail:&nbsp;</li>
     67 <li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
     68 <li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
     69 <li><a href="#method_detail">Method</a></li>
     70 </ul>
     71 </div>
     72 <a name="skip-navbar_top">
     73 <!--   -->
     74 </a></div>
     75 <!-- ========= END OF TOP NAVBAR ========= -->
     76 <!-- ======== START OF CLASS DATA ======== -->
     77 <div class="header">
     78 <div class="subTitle">org.libjpegturbo.turbojpeg</div>
     79 <h2 title="Class YUVImage" class="title">Class YUVImage</h2>
     80 </div>
     81 <div class="contentContainer">
     82 <ul class="inheritance">
     83 <li>java.lang.Object</li>
     84 <li>
     85 <ul class="inheritance">
     86 <li>org.libjpegturbo.turbojpeg.YUVImage</li>
     87 </ul>
     88 </li>
     89 </ul>
     90 <div class="description">
     91 <ul class="blockList">
     92 <li class="blockList">
     93 <hr>
     94 <br>
     95 <pre>public class <span class="strong">YUVImage</span>
     96 extends java.lang.Object</pre>
     97 <div class="block">This class encapsulates a YUV planar image and the metadata
     98  associated with it.  The TurboJPEG API allows both the JPEG compression and
     99  decompression pipelines to be split into stages:  YUV encode, compress from
    100  YUV, decompress to YUV, and YUV decode.  A <code>YUVImage</code> instance
    101  serves as the destination image for YUV encode and decompress-to-YUV
    102  operations and as the source image for compress-from-YUV and YUV decode
    103  operations.
    104  <p>
    105  Technically, the JPEG format uses the YCbCr colorspace (which technically is
    106  not a "colorspace" but rather a "color transform"), but per the convention
    107  of the digital video community, the TurboJPEG API uses "YUV" to refer to an
    108  image format consisting of Y, Cb, and Cr image planes.
    109  <p>
    110  Each plane is simply a 2D array of bytes, each byte representing the value
    111  of one of the components (Y, Cb, or Cr) at a particular location in the
    112  image.  The width and height of each plane are determined by the image
    113  width, height, and level of chrominance subsampling.  The luminance plane
    114  width is the image width padded to the nearest multiple of the horizontal
    115  subsampling factor (2 in the case of 4:2:0 and 4:2:2, 4 in the case of
    116  4:1:1, 1 in the case of 4:4:4 or grayscale.)  Similarly, the luminance plane
    117  height is the image height padded to the nearest multiple of the vertical
    118  subsampling factor (2 in the case of 4:2:0 or 4:4:0, 1 in the case of 4:4:4
    119  or grayscale.)  The chrominance plane width is equal to the luminance plane
    120  width divided by the horizontal subsampling factor, and the chrominance
    121  plane height is equal to the luminance plane height divided by the vertical
    122  subsampling factor.
    123  <p>
    124  For example, if the source image is 35 x 35 pixels and 4:2:2 subsampling is
    125  used, then the luminance plane would be 36 x 35 bytes, and each of the
    126  chrominance planes would be 18 x 35 bytes.  If you specify a line padding of
    127  4 bytes on top of this, then the luminance plane would be 36 x 35 bytes, and
    128  each of the chrominance planes would be 20 x 35 bytes.</div>
    129 </li>
    130 </ul>
    131 </div>
    132 <div class="summary">
    133 <ul class="blockList">
    134 <li class="blockList">
    135 <!-- =========== FIELD SUMMARY =========== -->
    136 <ul class="blockList">
    137 <li class="blockList"><a name="field_summary">
    138 <!--   -->
    139 </a>
    140 <h3>Field Summary</h3>
    141 <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
    142 <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
    143 <tr>
    144 <th class="colFirst" scope="col">Modifier and Type</th>
    145 <th class="colLast" scope="col">Field and Description</th>
    146 </tr>
    147 <tr class="altColor">
    148 <td class="colFirst"><code>protected long</code></td>
    149 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#handle">handle</a></strong></code>&nbsp;</td>
    150 </tr>
    151 <tr class="rowColor">
    152 <td class="colFirst"><code>protected int</code></td>
    153 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#yuvHeight">yuvHeight</a></strong></code>&nbsp;</td>
    154 </tr>
    155 <tr class="altColor">
    156 <td class="colFirst"><code>protected int[]</code></td>
    157 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#yuvOffsets">yuvOffsets</a></strong></code>&nbsp;</td>
    158 </tr>
    159 <tr class="rowColor">
    160 <td class="colFirst"><code>protected int</code></td>
    161 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#yuvPad">yuvPad</a></strong></code>&nbsp;</td>
    162 </tr>
    163 <tr class="altColor">
    164 <td class="colFirst"><code>protected byte[][]</code></td>
    165 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#yuvPlanes">yuvPlanes</a></strong></code>&nbsp;</td>
    166 </tr>
    167 <tr class="rowColor">
    168 <td class="colFirst"><code>protected int[]</code></td>
    169 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#yuvStrides">yuvStrides</a></strong></code>&nbsp;</td>
    170 </tr>
    171 <tr class="altColor">
    172 <td class="colFirst"><code>protected int</code></td>
    173 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#yuvSubsamp">yuvSubsamp</a></strong></code>&nbsp;</td>
    174 </tr>
    175 <tr class="rowColor">
    176 <td class="colFirst"><code>protected int</code></td>
    177 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#yuvWidth">yuvWidth</a></strong></code>&nbsp;</td>
    178 </tr>
    179 </table>
    180 </li>
    181 </ul>
    182 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
    183 <ul class="blockList">
    184 <li class="blockList"><a name="constructor_summary">
    185 <!--   -->
    186 </a>
    187 <h3>Constructor Summary</h3>
    188 <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
    189 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
    190 <tr>
    191 <th class="colOne" scope="col">Constructor and Description</th>
    192 </tr>
    193 <tr class="altColor">
    194 <td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#YUVImage(byte[][],%20int[],%20int,%20int[],%20int,%20int)">YUVImage</a></strong>(byte[][]&nbsp;planes,
    195         int[]&nbsp;offsets,
    196         int&nbsp;width,
    197         int[]&nbsp;strides,
    198         int&nbsp;height,
    199         int&nbsp;subsamp)</code>
    200 <div class="block">Create a new <code>YUVImage</code> instance from a set of existing image
    201  planes.</div>
    202 </td>
    203 </tr>
    204 <tr class="rowColor">
    205 <td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#YUVImage(byte[],%20int,%20int,%20int,%20int)">YUVImage</a></strong>(byte[]&nbsp;yuvImage,
    206         int&nbsp;width,
    207         int&nbsp;pad,
    208         int&nbsp;height,
    209         int&nbsp;subsamp)</code>
    210 <div class="block">Create a new <code>YUVImage</code> instance from an existing unified image
    211  buffer.</div>
    212 </td>
    213 </tr>
    214 <tr class="altColor">
    215 <td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#YUVImage(int,%20int[],%20int,%20int)">YUVImage</a></strong>(int&nbsp;width,
    216         int[]&nbsp;strides,
    217         int&nbsp;height,
    218         int&nbsp;subsamp)</code>
    219 <div class="block">Create a new <code>YUVImage</code> instance backed by separate image
    220  planes, and allocate memory for the image planes.</div>
    221 </td>
    222 </tr>
    223 <tr class="rowColor">
    224 <td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#YUVImage(int,%20int,%20int,%20int)">YUVImage</a></strong>(int&nbsp;width,
    225         int&nbsp;pad,
    226         int&nbsp;height,
    227         int&nbsp;subsamp)</code>
    228 <div class="block">Create a new <code>YUVImage</code> instance backed by a unified image
    229  buffer, and allocate memory for the image buffer.</div>
    230 </td>
    231 </tr>
    232 </table>
    233 </li>
    234 </ul>
    235 <!-- ========== METHOD SUMMARY =========== -->
    236 <ul class="blockList">
    237 <li class="blockList"><a name="method_summary">
    238 <!--   -->
    239 </a>
    240 <h3>Method Summary</h3>
    241 <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
    242 <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
    243 <tr>
    244 <th class="colFirst" scope="col">Modifier and Type</th>
    245 <th class="colLast" scope="col">Method and Description</th>
    246 </tr>
    247 <tr class="altColor">
    248 <td class="colFirst"><code>byte[]</code></td>
    249 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getBuf()">getBuf</a></strong>()</code>
    250 <div class="block">Returns the YUV image buffer (if this image is stored in a unified
    251  buffer rather than separate image planes.)</div>
    252 </td>
    253 </tr>
    254 <tr class="rowColor">
    255 <td class="colFirst"><code>int</code></td>
    256 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getHeight()">getHeight</a></strong>()</code>
    257 <div class="block">Returns the height of the YUV image (or subregion.)</div>
    258 </td>
    259 </tr>
    260 <tr class="altColor">
    261 <td class="colFirst"><code>int[]</code></td>
    262 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getOffsets()">getOffsets</a></strong>()</code>
    263 <div class="block">Returns the offsets (in bytes) of each plane within the planes of a larger
    264  YUV image.</div>
    265 </td>
    266 </tr>
    267 <tr class="rowColor">
    268 <td class="colFirst"><code>int</code></td>
    269 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getPad()">getPad</a></strong>()</code>
    270 <div class="block">Returns the line padding used in the YUV image buffer (if this image is
    271  stored in a unified buffer rather than separate image planes.)</div>
    272 </td>
    273 </tr>
    274 <tr class="altColor">
    275 <td class="colFirst"><code>byte[][]</code></td>
    276 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getPlanes()">getPlanes</a></strong>()</code>
    277 <div class="block">Returns the YUV image planes.</div>
    278 </td>
    279 </tr>
    280 <tr class="rowColor">
    281 <td class="colFirst"><code>int</code></td>
    282 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getSize()">getSize</a></strong>()</code>
    283 <div class="block">Returns the size (in bytes) of the YUV image buffer (if this image is
    284  stored in a unified buffer rather than separate image planes.)</div>
    285 </td>
    286 </tr>
    287 <tr class="altColor">
    288 <td class="colFirst"><code>int[]</code></td>
    289 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getStrides()">getStrides</a></strong>()</code>
    290 <div class="block">Returns the number of bytes per line of each plane in the YUV image.</div>
    291 </td>
    292 </tr>
    293 <tr class="rowColor">
    294 <td class="colFirst"><code>int</code></td>
    295 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getSubsamp()">getSubsamp</a></strong>()</code>
    296 <div class="block">Returns the level of chrominance subsampling used in the YUV image.</div>
    297 </td>
    298 </tr>
    299 <tr class="altColor">
    300 <td class="colFirst"><code>int</code></td>
    301 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#getWidth()">getWidth</a></strong>()</code>
    302 <div class="block">Returns the width of the YUV image (or subregion.)</div>
    303 </td>
    304 </tr>
    305 <tr class="rowColor">
    306 <td class="colFirst"><code>void</code></td>
    307 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#setBuf(byte[][],%20int[],%20int,%20int[],%20int,%20int)">setBuf</a></strong>(byte[][]&nbsp;planes,
    308       int[]&nbsp;offsets,
    309       int&nbsp;width,
    310       int[]&nbsp;strides,
    311       int&nbsp;height,
    312       int&nbsp;subsamp)</code>
    313 <div class="block">Assign a set of image planes to this <code>YUVImage</code> instance.</div>
    314 </td>
    315 </tr>
    316 <tr class="altColor">
    317 <td class="colFirst"><code>void</code></td>
    318 <td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html#setBuf(byte[],%20int,%20int,%20int,%20int)">setBuf</a></strong>(byte[]&nbsp;yuvImage,
    319       int&nbsp;width,
    320       int&nbsp;pad,
    321       int&nbsp;height,
    322       int&nbsp;subsamp)</code>
    323 <div class="block">Assign a unified image buffer to this <code>YUVImage</code> instance.</div>
    324 </td>
    325 </tr>
    326 </table>
    327 <ul class="blockList">
    328 <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
    329 <!--   -->
    330 </a>
    331 <h3>Methods inherited from class&nbsp;java.lang.Object</h3>
    332 <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
    333 </ul>
    334 </li>
    335 </ul>
    336 </li>
    337 </ul>
    338 </div>
    339 <div class="details">
    340 <ul class="blockList">
    341 <li class="blockList">
    342 <!-- ============ FIELD DETAIL =========== -->
    343 <ul class="blockList">
    344 <li class="blockList"><a name="field_detail">
    345 <!--   -->
    346 </a>
    347 <h3>Field Detail</h3>
    348 <a name="handle">
    349 <!--   -->
    350 </a>
    351 <ul class="blockList">
    352 <li class="blockList">
    353 <h4>handle</h4>
    354 <pre>protected&nbsp;long handle</pre>
    355 </li>
    356 </ul>
    357 <a name="yuvPlanes">
    358 <!--   -->
    359 </a>
    360 <ul class="blockList">
    361 <li class="blockList">
    362 <h4>yuvPlanes</h4>
    363 <pre>protected&nbsp;byte[][] yuvPlanes</pre>
    364 </li>
    365 </ul>
    366 <a name="yuvOffsets">
    367 <!--   -->
    368 </a>
    369 <ul class="blockList">
    370 <li class="blockList">
    371 <h4>yuvOffsets</h4>
    372 <pre>protected&nbsp;int[] yuvOffsets</pre>
    373 </li>
    374 </ul>
    375 <a name="yuvStrides">
    376 <!--   -->
    377 </a>
    378 <ul class="blockList">
    379 <li class="blockList">
    380 <h4>yuvStrides</h4>
    381 <pre>protected&nbsp;int[] yuvStrides</pre>
    382 </li>
    383 </ul>
    384 <a name="yuvPad">
    385 <!--   -->
    386 </a>
    387 <ul class="blockList">
    388 <li class="blockList">
    389 <h4>yuvPad</h4>
    390 <pre>protected&nbsp;int yuvPad</pre>
    391 </li>
    392 </ul>
    393 <a name="yuvWidth">
    394 <!--   -->
    395 </a>
    396 <ul class="blockList">
    397 <li class="blockList">
    398 <h4>yuvWidth</h4>
    399 <pre>protected&nbsp;int yuvWidth</pre>
    400 </li>
    401 </ul>
    402 <a name="yuvHeight">
    403 <!--   -->
    404 </a>
    405 <ul class="blockList">
    406 <li class="blockList">
    407 <h4>yuvHeight</h4>
    408 <pre>protected&nbsp;int yuvHeight</pre>
    409 </li>
    410 </ul>
    411 <a name="yuvSubsamp">
    412 <!--   -->
    413 </a>
    414 <ul class="blockListLast">
    415 <li class="blockList">
    416 <h4>yuvSubsamp</h4>
    417 <pre>protected&nbsp;int yuvSubsamp</pre>
    418 </li>
    419 </ul>
    420 </li>
    421 </ul>
    422 <!-- ========= CONSTRUCTOR DETAIL ======== -->
    423 <ul class="blockList">
    424 <li class="blockList"><a name="constructor_detail">
    425 <!--   -->
    426 </a>
    427 <h3>Constructor Detail</h3>
    428 <a name="YUVImage(int, int[], int, int)">
    429 <!--   -->
    430 </a>
    431 <ul class="blockList">
    432 <li class="blockList">
    433 <h4>YUVImage</h4>
    434 <pre>public&nbsp;YUVImage(int&nbsp;width,
    435         int[]&nbsp;strides,
    436         int&nbsp;height,
    437         int&nbsp;subsamp)
    438          throws java.lang.Exception</pre>
    439 <div class="block">Create a new <code>YUVImage</code> instance backed by separate image
    440  planes, and allocate memory for the image planes.</div>
    441 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>width</code> - width (in pixels) of the YUV image</dd><dd><code>strides</code> - an array of integers, each specifying the number of bytes
    442  per line in the corresponding plane of the YUV image.  Setting the stride
    443  for any plane to 0 is the same as setting it to the plane width (see
    444  <a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><code>above</code></a>.)  If <code>strides</code> is null, then the
    445  strides for all planes will be set to their respective plane widths.  When
    446  using this constructor, the stride for each plane must be equal to or
    447  greater than the plane width.</dd><dd><code>height</code> - height (in pixels) of the YUV image</dd><dd><code>subsamp</code> - the level of chrominance subsampling to be used in the YUV
    448  image (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#SAMP_444"><code>TJ.SAMP_*</code></a>)</dd>
    449 <dt><span class="strong">Throws:</span></dt>
    450 <dd><code>java.lang.Exception</code></dd></dl>
    451 </li>
    452 </ul>
    453 <a name="YUVImage(int, int, int, int)">
    454 <!--   -->
    455 </a>
    456 <ul class="blockList">
    457 <li class="blockList">
    458 <h4>YUVImage</h4>
    459 <pre>public&nbsp;YUVImage(int&nbsp;width,
    460         int&nbsp;pad,
    461         int&nbsp;height,
    462         int&nbsp;subsamp)
    463          throws java.lang.Exception</pre>
    464 <div class="block">Create a new <code>YUVImage</code> instance backed by a unified image
    465  buffer, and allocate memory for the image buffer.</div>
    466 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>width</code> - width (in pixels) of the YUV image</dd><dd><code>pad</code> - Each line of each plane in the YUV image buffer will be padded
    467  to this number of bytes (must be a power of 2.)</dd><dd><code>height</code> - height (in pixels) of the YUV image</dd><dd><code>subsamp</code> - the level of chrominance subsampling to be used in the YUV
    468  image (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#SAMP_444"><code>TJ.SAMP_*</code></a>)</dd>
    469 <dt><span class="strong">Throws:</span></dt>
    470 <dd><code>java.lang.Exception</code></dd></dl>
    471 </li>
    472 </ul>
    473 <a name="YUVImage(byte[][], int[], int, int[], int, int)">
    474 <!--   -->
    475 </a>
    476 <ul class="blockList">
    477 <li class="blockList">
    478 <h4>YUVImage</h4>
    479 <pre>public&nbsp;YUVImage(byte[][]&nbsp;planes,
    480         int[]&nbsp;offsets,
    481         int&nbsp;width,
    482         int[]&nbsp;strides,
    483         int&nbsp;height,
    484         int&nbsp;subsamp)
    485          throws java.lang.Exception</pre>
    486 <div class="block">Create a new <code>YUVImage</code> instance from a set of existing image
    487  planes.</div>
    488 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>planes</code> - an array of buffers representing the Y, U (Cb), and V (Cr)
    489  image planes (or just the Y plane, if the image is grayscale.)   These
    490  planes can be contiguous or non-contiguous in memory.  Plane
    491  <code>i</code> should be at least <code>offsets[i] +
    492  <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#planeSizeYUV(int,%20int,%20int,%20int,%20int)"><code>TJ.planeSizeYUV</code></a>(i, width, strides[i], height, subsamp)</code>
    493  bytes in size.</dd><dd><code>offsets</code> - If this <code>YUVImage</code> instance represents a
    494  subregion of a larger image, then <code>offsets[i]</code> specifies the
    495  offset (in bytes) of the subregion within plane <code>i</code> of the
    496  larger image.  Setting this to null is the same as setting the offsets for
    497  all planes to 0.</dd><dd><code>width</code> - width (in pixels) of the new YUV image (or subregion)</dd><dd><code>strides</code> - an array of integers, each specifying the number of bytes
    498  per line in the corresponding plane of the YUV image.  Setting the stride
    499  for any plane to 0 is the same as setting it to the plane width (see
    500  <a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><code>above</code></a>.)  If <code>strides</code> is null, then the
    501  strides for all planes will be set to their respective plane widths.  You
    502  can adjust the strides in order to add an arbitrary amount of line padding
    503  to each plane or to specify that this <code>YUVImage</code> instance is a
    504  subregion of a larger image (in which case, <code>strides[i]</code> should
    505  be set to the plane width of plane <code>i</code> in the larger image.)</dd><dd><code>height</code> - height (in pixels) of the new YUV image (or subregion)</dd><dd><code>subsamp</code> - the level of chrominance subsampling used in the YUV
    506  image (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#SAMP_444"><code>TJ.SAMP_*</code></a>)</dd>
    507 <dt><span class="strong">Throws:</span></dt>
    508 <dd><code>java.lang.Exception</code></dd></dl>
    509 </li>
    510 </ul>
    511 <a name="YUVImage(byte[], int, int, int, int)">
    512 <!--   -->
    513 </a>
    514 <ul class="blockListLast">
    515 <li class="blockList">
    516 <h4>YUVImage</h4>
    517 <pre>public&nbsp;YUVImage(byte[]&nbsp;yuvImage,
    518         int&nbsp;width,
    519         int&nbsp;pad,
    520         int&nbsp;height,
    521         int&nbsp;subsamp)
    522          throws java.lang.Exception</pre>
    523 <div class="block">Create a new <code>YUVImage</code> instance from an existing unified image
    524  buffer.</div>
    525 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>yuvImage</code> - image buffer that contains or will contain YUV planar
    526  image data.  Use <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSizeYUV(int,%20int,%20int,%20int)"><code>TJ.bufSizeYUV(int, int, int, int)</code></a> to determine the minimum size for
    527  this buffer.  The Y, U (Cb), and V (Cr) image planes are stored
    528  sequentially in the buffer (see <a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><code>above</code></a> for a description
    529  of the image format.)</dd><dd><code>width</code> - width (in pixels) of the YUV image</dd><dd><code>pad</code> - the line padding used in the YUV image buffer.  For
    530  instance, if each line in each plane of the buffer is padded to the
    531  nearest multiple of 4 bytes, then <code>pad</code> should be set to 4.</dd><dd><code>height</code> - height (in pixels) of the YUV image</dd><dd><code>subsamp</code> - the level of chrominance subsampling used in the YUV
    532  image (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#SAMP_444"><code>TJ.SAMP_*</code></a>)</dd>
    533 <dt><span class="strong">Throws:</span></dt>
    534 <dd><code>java.lang.Exception</code></dd></dl>
    535 </li>
    536 </ul>
    537 </li>
    538 </ul>
    539 <!-- ============ METHOD DETAIL ========== -->
    540 <ul class="blockList">
    541 <li class="blockList"><a name="method_detail">
    542 <!--   -->
    543 </a>
    544 <h3>Method Detail</h3>
    545 <a name="setBuf(byte[][], int[], int, int[], int, int)">
    546 <!--   -->
    547 </a>
    548 <ul class="blockList">
    549 <li class="blockList">
    550 <h4>setBuf</h4>
    551 <pre>public&nbsp;void&nbsp;setBuf(byte[][]&nbsp;planes,
    552           int[]&nbsp;offsets,
    553           int&nbsp;width,
    554           int[]&nbsp;strides,
    555           int&nbsp;height,
    556           int&nbsp;subsamp)
    557             throws java.lang.Exception</pre>
    558 <div class="block">Assign a set of image planes to this <code>YUVImage</code> instance.</div>
    559 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>planes</code> - an array of buffers representing the Y, U (Cb), and V (Cr)
    560  image planes (or just the Y plane, if the image is grayscale.)  These
    561  planes can be contiguous or non-contiguous in memory.  Plane
    562  <code>i</code> should be at least <code>offsets[i] +
    563  <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#planeSizeYUV(int,%20int,%20int,%20int,%20int)"><code>TJ.planeSizeYUV</code></a>(i, width, strides[i], height, subsamp)</code>
    564  bytes in size.</dd><dd><code>offsets</code> - If this <code>YUVImage</code> instance represents a
    565  subregion of a larger image, then <code>offsets[i]</code> specifies the
    566  offset (in bytes) of the subregion within plane <code>i</code> of the
    567  larger image.  Setting this to null is the same as setting the offsets for
    568  all planes to 0.</dd><dd><code>width</code> - width (in pixels) of the YUV image (or subregion)</dd><dd><code>strides</code> - an array of integers, each specifying the number of bytes
    569  per line in the corresponding plane of the YUV image.  Setting the stride
    570  for any plane to 0 is the same as setting it to the plane width (see
    571  <a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><code>above</code></a>.)  If <code>strides</code> is null, then the
    572  strides for all planes will be set to their respective plane widths.  You
    573  can adjust the strides in order to add an arbitrary amount of line padding
    574  to each plane or to specify that this <code>YUVImage</code> image is a
    575  subregion of a larger image (in which case, <code>strides[i]</code> should
    576  be set to the plane width of plane <code>i</code> in the larger image.)</dd><dd><code>height</code> - height (in pixels) of the YUV image (or subregion)</dd><dd><code>subsamp</code> - the level of chrominance subsampling used in the YUV
    577  image (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#SAMP_444"><code>TJ.SAMP_*</code></a>)</dd>
    578 <dt><span class="strong">Throws:</span></dt>
    579 <dd><code>java.lang.Exception</code></dd></dl>
    580 </li>
    581 </ul>
    582 <a name="setBuf(byte[], int, int, int, int)">
    583 <!--   -->
    584 </a>
    585 <ul class="blockList">
    586 <li class="blockList">
    587 <h4>setBuf</h4>
    588 <pre>public&nbsp;void&nbsp;setBuf(byte[]&nbsp;yuvImage,
    589           int&nbsp;width,
    590           int&nbsp;pad,
    591           int&nbsp;height,
    592           int&nbsp;subsamp)
    593             throws java.lang.Exception</pre>
    594 <div class="block">Assign a unified image buffer to this <code>YUVImage</code> instance.</div>
    595 <dl><dt><span class="strong">Parameters:</span></dt><dd><code>yuvImage</code> - image buffer that contains or will contain YUV planar
    596  image data.  Use <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSizeYUV(int,%20int,%20int,%20int)"><code>TJ.bufSizeYUV(int, int, int, int)</code></a> to determine the minimum size for
    597  this buffer.  The Y, U (Cb), and V (Cr) image planes are stored
    598  sequentially in the buffer (see <a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><code>above</code></a> for a description
    599  of the image format.)</dd><dd><code>width</code> - width (in pixels) of the YUV image</dd><dd><code>pad</code> - the line padding used in the YUV image buffer.  For
    600  instance, if each line in each plane of the buffer is padded to the
    601  nearest multiple of 4 bytes, then <code>pad</code> should be set to 4.</dd><dd><code>height</code> - height (in pixels) of the YUV image</dd><dd><code>subsamp</code> - the level of chrominance subsampling used in the YUV
    602  image (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#SAMP_444"><code>TJ.SAMP_*</code></a>)</dd>
    603 <dt><span class="strong">Throws:</span></dt>
    604 <dd><code>java.lang.Exception</code></dd></dl>
    605 </li>
    606 </ul>
    607 <a name="getWidth()">
    608 <!--   -->
    609 </a>
    610 <ul class="blockList">
    611 <li class="blockList">
    612 <h4>getWidth</h4>
    613 <pre>public&nbsp;int&nbsp;getWidth()
    614              throws java.lang.Exception</pre>
    615 <div class="block">Returns the width of the YUV image (or subregion.)</div>
    616 <dl><dt><span class="strong">Returns:</span></dt><dd>the width of the YUV image (or subregion)</dd>
    617 <dt><span class="strong">Throws:</span></dt>
    618 <dd><code>java.lang.Exception</code></dd></dl>
    619 </li>
    620 </ul>
    621 <a name="getHeight()">
    622 <!--   -->
    623 </a>
    624 <ul class="blockList">
    625 <li class="blockList">
    626 <h4>getHeight</h4>
    627 <pre>public&nbsp;int&nbsp;getHeight()
    628               throws java.lang.Exception</pre>
    629 <div class="block">Returns the height of the YUV image (or subregion.)</div>
    630 <dl><dt><span class="strong">Returns:</span></dt><dd>the height of the YUV image (or subregion)</dd>
    631 <dt><span class="strong">Throws:</span></dt>
    632 <dd><code>java.lang.Exception</code></dd></dl>
    633 </li>
    634 </ul>
    635 <a name="getPad()">
    636 <!--   -->
    637 </a>
    638 <ul class="blockList">
    639 <li class="blockList">
    640 <h4>getPad</h4>
    641 <pre>public&nbsp;int&nbsp;getPad()
    642            throws java.lang.Exception</pre>
    643 <div class="block">Returns the line padding used in the YUV image buffer (if this image is
    644  stored in a unified buffer rather than separate image planes.)</div>
    645 <dl><dt><span class="strong">Returns:</span></dt><dd>the line padding used in the YUV image buffer</dd>
    646 <dt><span class="strong">Throws:</span></dt>
    647 <dd><code>java.lang.Exception</code></dd></dl>
    648 </li>
    649 </ul>
    650 <a name="getStrides()">
    651 <!--   -->
    652 </a>
    653 <ul class="blockList">
    654 <li class="blockList">
    655 <h4>getStrides</h4>
    656 <pre>public&nbsp;int[]&nbsp;getStrides()
    657                  throws java.lang.Exception</pre>
    658 <div class="block">Returns the number of bytes per line of each plane in the YUV image.</div>
    659 <dl><dt><span class="strong">Returns:</span></dt><dd>the number of bytes per line of each plane in the YUV image</dd>
    660 <dt><span class="strong">Throws:</span></dt>
    661 <dd><code>java.lang.Exception</code></dd></dl>
    662 </li>
    663 </ul>
    664 <a name="getOffsets()">
    665 <!--   -->
    666 </a>
    667 <ul class="blockList">
    668 <li class="blockList">
    669 <h4>getOffsets</h4>
    670 <pre>public&nbsp;int[]&nbsp;getOffsets()
    671                  throws java.lang.Exception</pre>
    672 <div class="block">Returns the offsets (in bytes) of each plane within the planes of a larger
    673  YUV image.</div>
    674 <dl><dt><span class="strong">Returns:</span></dt><dd>the offsets (in bytes) of each plane within the planes of a larger
    675  YUV image</dd>
    676 <dt><span class="strong">Throws:</span></dt>
    677 <dd><code>java.lang.Exception</code></dd></dl>
    678 </li>
    679 </ul>
    680 <a name="getSubsamp()">
    681 <!--   -->
    682 </a>
    683 <ul class="blockList">
    684 <li class="blockList">
    685 <h4>getSubsamp</h4>
    686 <pre>public&nbsp;int&nbsp;getSubsamp()
    687                throws java.lang.Exception</pre>
    688 <div class="block">Returns the level of chrominance subsampling used in the YUV image.  See
    689  <a href="../../../org/libjpegturbo/turbojpeg/TJ.html#SAMP_444"><code>TJ.SAMP_*</code></a>.</div>
    690 <dl><dt><span class="strong">Returns:</span></dt><dd>the level of chrominance subsampling used in the YUV image</dd>
    691 <dt><span class="strong">Throws:</span></dt>
    692 <dd><code>java.lang.Exception</code></dd></dl>
    693 </li>
    694 </ul>
    695 <a name="getPlanes()">
    696 <!--   -->
    697 </a>
    698 <ul class="blockList">
    699 <li class="blockList">
    700 <h4>getPlanes</h4>
    701 <pre>public&nbsp;byte[][]&nbsp;getPlanes()
    702                    throws java.lang.Exception</pre>
    703 <div class="block">Returns the YUV image planes.  If the image is stored in a unified buffer,
    704  then all image planes will point to that buffer.</div>
    705 <dl><dt><span class="strong">Returns:</span></dt><dd>the YUV image planes</dd>
    706 <dt><span class="strong">Throws:</span></dt>
    707 <dd><code>java.lang.Exception</code></dd></dl>
    708 </li>
    709 </ul>
    710 <a name="getBuf()">
    711 <!--   -->
    712 </a>
    713 <ul class="blockList">
    714 <li class="blockList">
    715 <h4>getBuf</h4>
    716 <pre>public&nbsp;byte[]&nbsp;getBuf()
    717               throws java.lang.Exception</pre>
    718 <div class="block">Returns the YUV image buffer (if this image is stored in a unified
    719  buffer rather than separate image planes.)</div>
    720 <dl><dt><span class="strong">Returns:</span></dt><dd>the YUV image buffer</dd>
    721 <dt><span class="strong">Throws:</span></dt>
    722 <dd><code>java.lang.Exception</code></dd></dl>
    723 </li>
    724 </ul>
    725 <a name="getSize()">
    726 <!--   -->
    727 </a>
    728 <ul class="blockListLast">
    729 <li class="blockList">
    730 <h4>getSize</h4>
    731 <pre>public&nbsp;int&nbsp;getSize()
    732             throws java.lang.Exception</pre>
    733 <div class="block">Returns the size (in bytes) of the YUV image buffer (if this image is
    734  stored in a unified buffer rather than separate image planes.)</div>
    735 <dl><dt><span class="strong">Returns:</span></dt><dd>the size (in bytes) of the YUV image buffer</dd>
    736 <dt><span class="strong">Throws:</span></dt>
    737 <dd><code>java.lang.Exception</code></dd></dl>
    738 </li>
    739 </ul>
    740 </li>
    741 </ul>
    742 </li>
    743 </ul>
    744 </div>
    745 </div>
    746 <!-- ========= END OF CLASS DATA ========= -->
    747 <!-- ======= START OF BOTTOM NAVBAR ====== -->
    748 <div class="bottomNav"><a name="navbar_bottom">
    749 <!--   -->
    750 </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
    751 <!--   -->
    752 </a>
    753 <ul class="navList" title="Navigation">
    754 <li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
    755 <li class="navBarCell1Rev">Class</li>
    756 <li><a href="package-tree.html">Tree</a></li>
    757 <li><a href="../../../deprecated-list.html">Deprecated</a></li>
    758 <li><a href="../../../index-all.html">Index</a></li>
    759 <li><a href="../../../help-doc.html">Help</a></li>
    760 </ul>
    761 </div>
    762 <div class="subNav">
    763 <ul class="navList">
    764 <li><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
    765 <li>Next Class</li>
    766 </ul>
    767 <ul class="navList">
    768 <li><a href="../../../index.html?org/libjpegturbo/turbojpeg/YUVImage.html" target="_top">Frames</a></li>
    769 <li><a href="YUVImage.html" target="_top">No Frames</a></li>
    770 </ul>
    771 <ul class="navList" id="allclasses_navbar_bottom">
    772 <li><a href="../../../allclasses-noframe.html">All Classes</a></li>
    773 </ul>
    774 <div>
    775 <script type="text/javascript"><!--
    776   allClassesLink = document.getElementById("allclasses_navbar_bottom");
    777   if(window==top) {
    778     allClassesLink.style.display = "block";
    779   }
    780   else {
    781     allClassesLink.style.display = "none";
    782   }
    783   //-->
    784 </script>
    785 </div>
    786 <div>
    787 <ul class="subNavList">
    788 <li>Summary:&nbsp;</li>
    789 <li>Nested&nbsp;|&nbsp;</li>
    790 <li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
    791 <li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
    792 <li><a href="#method_summary">Method</a></li>
    793 </ul>
    794 <ul class="subNavList">
    795 <li>Detail:&nbsp;</li>
    796 <li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
    797 <li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
    798 <li><a href="#method_detail">Method</a></li>
    799 </ul>
    800 </div>
    801 <a name="skip-navbar_bottom">
    802 <!--   -->
    803 </a></div>
    804 <!-- ======== END OF BOTTOM NAVBAR ======= -->
    805 </body>
    806 </html>
    807