# CSJ2K.j2k.image.forwcomptransf.ForwCompTransf

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf" class="text-break">ForwCompTransf Class
</h1>
  <div class="markdown level0 summary"><p>This class apply component transformations to the tiles depending on user
specifications. 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">ForwCompTransf</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.forwcomptransf.html">CSJ2K.j2k.image.forwcomptransf</a></h6>
  <h6><strong>Assembly</strong>: C1.WPF.ReportViewer.4.6.2.dll</h6>
  <h5 id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class ForwCompTransf : ImgDataAdapter, BlkImgDataSrc, ImgData</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class ForwCompTransf
    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_forwcomptransf_ForwCompTransf__ctor_CSJ2K_j2k_image_BlkImgDataSrc_CSJ2K_j2k_encoder_EncoderSpecs_" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.#ctor(CSJ2K.j2k.image.BlkImgDataSrc,CSJ2K.j2k.encoder.EncoderSpecs)">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.-ctor.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf__ctor_CSJ2K_j2k_image_BlkImgDataSrc_CSJ2K_j2k_encoder_EncoderSpecs_">ForwCompTransf(BlkImgDataSrc, EncoderSpecs)</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_forwcomptransf_ForwCompTransf_FORW_ICT" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.FORW_ICT">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.FORW_ICT.html">FORW_ICT</a>
        </td>
        <td class="markdown level1 summary"><p>Identifier for the Forward Irreversible Component Transformation
(FORW_ICT). Value is 2</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_FORW_RCT" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.FORW_RCT">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.FORW_RCT.html">FORW_RCT</a>
        </td>
        <td class="markdown level1 summary"><p>Identifier for the Forward Reversible Component Transformation
(FORW_RCT). Value is 1.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_NONE" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.NONE">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.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_forwcomptransf_ForwCompTransf_OPT_PREFIX" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.OPT_PREFIX">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.OPT_PREFIX.html">OPT_PREFIX</a>
        </td>
        <td class="markdown level1 summary"><p>The prefix for component transformation type: '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_forwcomptransf_ForwCompTransf_ParameterInfo" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.ParameterInfo">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.ParameterInfo.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_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_forwcomptransf_ForwCompTransf_Reversible" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.Reversible">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.Reversible.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_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_forwcomptransf_ForwCompTransf_ToString" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.ToString">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.ToString.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_ToString">ToString()</a>
        </td>
        <td class="markdown level1 summary"><p>Returns a string with a descriptive text of which forward component
transformation is used. This can be either &quot;Forward RCT&quot; or &quot;Forward
ICT&quot; or &quot;No component transformation&quot; depending on the current tile.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_calcMixedBitDepths_System_Int32___System_Int32_System_Int32___" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.calcMixedBitDepths(System.Int32[],System.Int32,System.Int32[])">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.calcMixedBitDepths.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_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
transformation type.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_getCompData_CSJ2K_j2k_image_DataBlk_System_Int32_" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.getCompData(CSJ2K.j2k.image.DataBlk,System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.getCompData.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_getCompData_CSJ2K_j2k_image_DataBlk_System_Int32_">getCompData(DataBlk, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Apply forward component transformation associated with the current
tile. If no component transformation has been requested by the user,
data are not modified.</p>
<pre><code>       &lt;p&gt;This method calls the getInternCompData() method, but respects the
       definitions of the getCompData() method defined in the BlkImgDataSrc
       interface.&lt;/p&gt;
</code></pre>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_getFixedPoint_System_Int32_" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.getFixedPoint(System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.getFixedPoint.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_getFixedPoint_System_Int32_">getFixedPoint(int)</a>
        </td>
        <td class="markdown level1 summary"><p>Returns the position of the fixed point in the specified
component. 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>
<pre><code>       &lt;p&gt;This default implementation assumes that the number of fractional
       bits is not modified by the component mixer.&lt;/p&gt;
</code></pre>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_getInternCompData_CSJ2K_j2k_image_DataBlk_System_Int32_" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.getInternCompData(CSJ2K.j2k.image.DataBlk,System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.getInternCompData.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_getInternCompData_CSJ2K_j2k_image_DataBlk_System_Int32_">getInternCompData(DataBlk, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Apply the 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 (forwRCT or forwICT).</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_getNomRangeBits_System_Int32_" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.getNomRangeBits(System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.getNomRangeBits.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_getNomRangeBits_System_Int32_">getNomRangeBits(int)</a>
        </td>
        <td class="markdown level1 summary"><p>Returns the number of bits, referred to as the &quot;range bits&quot;,
corresponding to the nominal range of the data in the specified
component and in the current tile. If this number is <i>b</i> then for
unsigned data the nominal range is between 0 and 2^b-1, and for signed
data it is between -2^(b-1) and 2^(b-1)-1. Note that this value can be
affected by the multiple component transform.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_nextTile" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.nextTile">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.nextTile.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_nextTile">nextTile()</a>
        </td>
        <td class="markdown level1 summary"><p>Goes to the next tile, in standard scan-line order (by rows then by
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 and re-initializes properly component transformation
       variables.&lt;/p&gt;
</code></pre>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_setTile_System_Int32_System_Int32_" data-uid="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.setTile(System.Int32,System.Int32)">
          <a class="xref" href="CSJ2K.j2k.image.forwcomptransf.ForwCompTransf.setTile.html#CSJ2K_j2k_image_forwcomptransf_ForwCompTransf_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 changes the tile in the source and
       re-initializes properly component transformation variables..&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>
