# CSJ2K.j2k.image.invcomptransf.InvCompTransf

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="CSJ2K_j2k_image_invcomptransf_InvCompTransf" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf" class="text-break">InvCompTransf Class
</h1>
  <div class="markdown level0 summary"><p>This class apply inverse component transformations to the tiles depending
on specification read from the codestream header. These transformations can
be used to improve compression efficiency but are not related to colour
transforms used to map colour values for display purposes. JPEG 2000 part I
defines 2 component transformations: RCT (Reversible Component
Transformation) and ICT (Irreversible Component Transformation).</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="CSJ2K.j2k.image.ImgDataAdapter.html">ImgDataAdapter</a></div>
    <div class="level2"><span class="xref">InvCompTransf</span></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="CSJ2K.j2k.image.BlkImgDataSrc.html">BlkImgDataSrc</a></div>
    <div><a class="xref" href="CSJ2K.j2k.image.ImgData.html">ImgData</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="CSJ2K.j2k.image.invcomptransf.html">CSJ2K.j2k.image.invcomptransf</a></h6>
  <h6><strong>Assembly</strong>: C1.WPF.ReportViewer.4.6.2.dll</h6>
  <h5 id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class InvCompTransf : ImgDataAdapter, BlkImgDataSrc, ImgData</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class InvCompTransf
    Inherits ImgDataAdapter
    Implements BlkImgDataSrc, ImgData</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf__ctor_CSJ2K_j2k_image_BlkImgDataSrc_CSJ2K_j2k_decoder_DecoderSpecs_System_Int32___CSJ2K_j2k_util_ParameterList_" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.#ctor(CSJ2K.j2k.image.BlkImgDataSrc,CSJ2K.j2k.decoder.DecoderSpecs,System.Int32[],CSJ2K.j2k.util.ParameterList)">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.-ctor.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf__ctor_CSJ2K_j2k_image_BlkImgDataSrc_CSJ2K_j2k_decoder_DecoderSpecs_System_Int32___CSJ2K_j2k_util_ParameterList_">InvCompTransf(BlkImgDataSrc, DecoderSpecs, int[], ParameterList)</a>
        </td>
        <td class="markdown level1 summary"><p>Constructs a new ForwCompTransf object that operates on the
specified source of image data.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="fields">Fields
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_INV_ICT" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.INV_ICT">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.INV_ICT.html">INV_ICT</a>
        </td>
        <td class="markdown level1 summary"><p>Identifier for the Inverse Irreversible Component
Transformation (INV_ICT). Value is 2</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_INV_RCT" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.INV_RCT">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.INV_RCT.html">INV_RCT</a>
        </td>
        <td class="markdown level1 summary"><p>Identifier for the Inverse Reversible Component Transformation
(INV_RCT). Value is 1.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_NONE" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.NONE">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.NONE.html">NONE</a>
        </td>
        <td class="markdown level1 summary"><p>Identifier for no component transformation. Value is 0.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_OPT_PREFIX" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.OPT_PREFIX">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.OPT_PREFIX.html">OPT_PREFIX</a>
        </td>
        <td class="markdown level1 summary"><p>The prefix for inverse component transformation options: 'M'</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_ParameterInfo" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.ParameterInfo">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.ParameterInfo.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_ParameterInfo">ParameterInfo</a>
        </td>
        <td class="markdown level1 summary"><p>Returns the parameters that are used in this class and implementing
classes. It returns a 2D String array. Each of the 1D arrays is for a
different option, and they have 4 elements. The first element is the
option name, the second one is the synopsis, the third one is a long
description of what the parameter is and the fourth is its default
value. The synopsis or description may be 'null', in which case it is
assumed that there is no synopsis or description of the option,
respectively. Null may be returned if no options are supported.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_Reversible" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.Reversible">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.Reversible.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_Reversible">Reversible</a>
        </td>
        <td class="markdown level1 summary"><p>Returns true if this transform is reversible in current
tile. Reversible component transformations are those which operation
can be completely reversed without any loss of information (not even
due to rounding).</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_ToString" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.ToString">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.ToString.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_ToString">ToString()</a>
        </td>
        <td class="markdown level1 summary"><p>Returns a string with a descriptive text of which inverse component
transformation is used. This can be either &quot;Inverse RCT&quot; or &quot;Inverse
ICT&quot; or &quot;No component transformation&quot; depending on the current tile.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_calcMixedBitDepths_System_Int32___System_Int32_System_Int32___" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.calcMixedBitDepths(System.Int32[],System.Int32,System.Int32[])">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.calcMixedBitDepths.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_calcMixedBitDepths_System_Int32___System_Int32_System_Int32___">calcMixedBitDepths(int[], int, int[])</a>
        </td>
        <td class="markdown level1 summary"><p>Calculates the bitdepths of the transformed components, given the
bitdepth of the un-transformed components and the component
tranformation type.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_getCompData_CSJ2K_j2k_image_DataBlk_System_Int32_" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.getCompData(CSJ2K.j2k.image.DataBlk,System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.getCompData.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_getCompData_CSJ2K_j2k_image_DataBlk_System_Int32_">getCompData(DataBlk, int)</a>
        </td>
        <td class="markdown level1 summary"></td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_getFixedPoint_System_Int32_" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.getFixedPoint(System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.getFixedPoint.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_getFixedPoint_System_Int32_">getFixedPoint(int)</a>
        </td>
        <td class="markdown level1 summary"><p>Returns the position of the fixed point in the specified component, or
equivalently the number of fractional bits. This is the position of the
least significant integral (i.e. non-fractional) bit, which is
equivalent to the number of fractional bits. For instance, for
fixed-point values with 2 fractional bits, 2 is returned. For
floating-point data this value does not apply and 0 should be
returned. Position 0 is the position of the least significant bit in
the data.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_getInternCompData_CSJ2K_j2k_image_DataBlk_System_Int32_" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.getInternCompData(CSJ2K.j2k.image.DataBlk,System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.getInternCompData.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_getInternCompData_CSJ2K_j2k_image_DataBlk_System_Int32_">getInternCompData(DataBlk, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Apply the inverse component transformation associated with the current
tile. If no component transformation has been requested by the user,
data are not modified. Else, appropriate method is called (invRCT or
invICT).</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_getNomRangeBits_System_Int32_" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.getNomRangeBits(System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.getNomRangeBits.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_getNomRangeBits_System_Int32_">getNomRangeBits(int)</a>
        </td>
        <td class="markdown level1 summary"></td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_nextTile" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.nextTile">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.nextTile.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_nextTile">nextTile()</a>
        </td>
        <td class="markdown level1 summary"><p>Advances to the next tile, in standard scan-line order (by rows then
columns). An NoNextElementException is thrown if the current tile is
the last one (i.e. there is no next tile).</p>
<pre><code>       &lt;p&gt;This default implementation just advances to the next tile in the
       source.&lt;/p&gt;
</code></pre>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_invcomptransf_InvCompTransf_setTile_System_Int32_System_Int32_" data-uid="CSJ2K.j2k.image.invcomptransf.InvCompTransf.setTile(System.Int32,System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.invcomptransf.InvCompTransf.setTile.html#CSJ2K_j2k_image_invcomptransf_InvCompTransf_setTile_System_Int32_System_Int32_">setTile(int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Changes the current tile, given the new indexes. An
IllegalArgumentException is thrown if the indexes do not correspond to
a valid tile.</p>
<pre><code>       &lt;p&gt;This default implementation just changes the tile in the source.&lt;/p&gt;
</code></pre>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="seealso">See Also</h3>
  <div class="seealso">
      <div><a class="xref" href="CSJ2K.j2k.ModuleSpec.html">ModuleSpec</a></div>
  </div>

</div>
