Click here to Skip to main content
15,893,588 members
Articles / Desktop Programming / MFC

ImageStone - A Powerful C++ Class Library for Image Manipulation

Rate me:
Please Sign up or sign in to vote.
4.81/5 (250 votes)
6 Dec 2011Zlib3 min read 1.1M   51.5K   405  
An article on a library for image manipulation
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ImageStone: FCCompress Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
<h1>FCCompress Class Reference</h1>Compress helper class.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="_rle_8h-source.html">Rle.h</a>&gt;</code>
<p>
<a href="class_f_c_compress-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_c_compress.html#e0">RLE_PCX_Encode</a> (const BYTE *pInBuffer, int nInSize, BYTE *pOutBuffer)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">pOutBuffer must at least double size than pInBuffer.  <a href="#e0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_c_compress.html#e1">RLE_PCX_Decode</a> (const BYTE *pInBuffer, int nInSize, BYTE *pOutBuffer)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">pOutBuffer must large enough.  <a href="#e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static BYTE *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_c_compress.html#e2">RLE_TGA_EncodeLine</a> (const BYTE *pInBuffer, int iColorBit, int iNumPixel, BYTE *pOutBuffer)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">pOutBuffer must at least double size than pInBuffer.  <a href="#e2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static BYTE *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_c_compress.html#e3">RLE_TGA_DecodeLine</a> (const BYTE *pInBuffer, int iColorBit, int iNumPixel, BYTE *pOutBuffer)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">pOutBuffer must large enough.  <a href="#e3"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Compress helper class. 
<p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="e1" doxytag="FCCompress::RLE_PCX_Decode"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int FCCompress::RLE_PCX_Decode           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pInBuffer</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>nInSize</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pOutBuffer</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline, static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
pOutBuffer must large enough. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>return bytes of written to pOutBuffer. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="e0" doxytag="FCCompress::RLE_PCX_Encode"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int FCCompress::RLE_PCX_Encode           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pInBuffer</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>nInSize</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pOutBuffer</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline, static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
pOutBuffer must at least double size than pInBuffer. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>return bytes of written to pOutBuffer. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="e3" doxytag="FCCompress::RLE_TGA_DecodeLine"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">BYTE * FCCompress::RLE_TGA_DecodeLine           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pInBuffer</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>iColorBit</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>iNumPixel</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pOutBuffer</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline, static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
pOutBuffer must large enough. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iColorBit</em>&nbsp;</td><td>: bpp - 8, 16, 24, 32 </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>iNumPixel</em>&nbsp;</td><td>: pixel width of image line </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>return current pInBuffer position. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="e2" doxytag="FCCompress::RLE_TGA_EncodeLine"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">BYTE * FCCompress::RLE_TGA_EncodeLine           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pInBuffer</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>iColorBit</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>iNumPixel</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pOutBuffer</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline, static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
pOutBuffer must at least double size than pInBuffer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iColorBit</em>&nbsp;</td><td>: bpp - 8, 16, 24, 32 </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>iNumPixel</em>&nbsp;</td><td>: pixel width of image line </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>return current pOutBuffer position. </dd></dl>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_rle_8h-source.html">Rle.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Mar 8 11:12:47 2006 for ImageStone by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The zlib/libpng License


Written By
Team Leader PhoXo
China China
graduate from University of Science and Technology of China at 2002.

Now I work at www.phoxo.com.

Comments and Discussions