Click here to Skip to main content
15,896,348 members
Articles / Desktop Programming / MFC

WaterMarker

Rate me:
Please Sign up or sign in to vote.
4.75/5 (17 votes)
5 Apr 2006Zlib5 min read 104.3K   3K   64  
An utility to protect yout pictures with a stamp bitmap.
<!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>CxImage: Initialization</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.8 -->
<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</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> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>Initialization</h1><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group___initialization.html#ga2">CxImage::Clear</a> (BYTE bval=0)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group___initialization.html#ga3">CxImage::Copy</a> (const <a class="el" href="class_cx_image.html">CxImage</a> &amp;src, bool copypixels=true, bool copyselection=true, bool copyalpha=true)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group___initialization.html#ga0">CxImage::Create</a> (DWORD dwWidth, DWORD dwHeight, DWORD wBpp, DWORD imagetype=0)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group___initialization.html#ga5">CxImage::CreateFromArray</a> (BYTE *pArray, DWORD dwWidth, DWORD dwHeight, DWORD dwBitsperpixel, DWORD dwBytesperline, bool bFlipImage)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group___initialization.html#ga6">CxImage::CreateFromMatrix</a> (BYTE **ppMatrix, DWORD dwWidth, DWORD dwHeight, DWORD dwBitsperpixel, DWORD dwBytesperline, bool bFlipImage)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group___initialization.html#ga1">CxImage::Destroy</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group___initialization.html#ga7">CxImage::FreeMemory</a> (void *memblock)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group___initialization.html#ga4">CxImage::Transfer</a> (<a class="el" href="class_cx_image.html">CxImage</a> &amp;from)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ga2" doxytag="CxImage::Clear" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void CxImage::Clear           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">BYTE&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>bval</em> = <code>0</code>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the image bits to the specified value<ul>
<li>for indexed images, the output color is set by the palette entries.</li><li>for RGB images, the output color is a shade of gray. </li></ul>
    </td>
  </tr>
</table>
<a class="anchor" name="ga3" doxytag="CxImage::Copy" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void CxImage::Copy           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="class_cx_image.html">CxImage</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>src</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>copypixels</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>copyselection</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>copyalpha</em> = <code>true</code></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Copies the image from an exsisting source <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td></td><td valign=top><em>src:</em>&nbsp;</td><td>source image. </td></tr>
    <tr><td></td><td valign=top><em>copypixels:</em>&nbsp;</td><td>copy the pixels from the source image into the new image. </td></tr>
    <tr><td></td><td valign=top><em>copyselection:</em>&nbsp;</td><td>copy the selection from source </td></tr>
    <tr><td></td><td valign=top><em>copyalpha:</em>&nbsp;</td><td>copy the alpha channel from source </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga0" doxytag="CxImage::Create" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void * CxImage::Create           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwWidth</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwHeight</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>wBpp</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>imagetype</em> = <code>0</code></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Initializes or rebuilds the image. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td></td><td valign=top><em>dwWidth:</em>&nbsp;</td><td>width </td></tr>
    <tr><td></td><td valign=top><em>dwHeight:</em>&nbsp;</td><td>height </td></tr>
    <tr><td></td><td valign=top><em>wBpp:</em>&nbsp;</td><td>bit per pixel, can be 1, 4, 8, 24 </td></tr>
    <tr><td></td><td valign=top><em>imagetype:</em>&nbsp;</td><td>(optional) set the image format, see ENUM_CXIMAGE_FORMATS </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>pointer to the internal pDib object; NULL if an error occurs. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga5" doxytag="CxImage::CreateFromArray" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool CxImage::CreateFromArray           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">BYTE *&nbsp;</td>
          <td class="mdname" nowrap> <em>pArray</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwWidth</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwHeight</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwBitsperpixel</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwBytesperline</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>bFlipImage</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates an image from a generic buffer <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td></td><td valign=top><em>pArray:</em>&nbsp;</td><td>source memory buffer </td></tr>
    <tr><td></td><td valign=top><em>dwWidth:</em>&nbsp;</td><td>image width </td></tr>
    <tr><td></td><td valign=top><em>dwHeight:</em>&nbsp;</td><td>image height </td></tr>
    <tr><td></td><td valign=top><em>dwBitsperpixel:</em>&nbsp;</td><td>can be 1,4,8,24,32 </td></tr>
    <tr><td></td><td valign=top><em>dwBytesperline:</em>&nbsp;</td><td>line alignment, in bytes, for a single row stored in pArray </td></tr>
    <tr><td></td><td valign=top><em>bFlipImage:</em>&nbsp;</td><td>tune this parameter if the image is upsidedown </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>true if everything is ok </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga6" doxytag="CxImage::CreateFromMatrix" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool CxImage::CreateFromMatrix           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">BYTE **&nbsp;</td>
          <td class="mdname" nowrap> <em>ppMatrix</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwWidth</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwHeight</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwBitsperpixel</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>DWORD&nbsp;</td>
          <td class="mdname" nowrap> <em>dwBytesperline</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>bFlipImage</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___initialization.html#ga5">CreateFromArray</a> </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga1" doxytag="CxImage::Destroy" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool CxImage::Destroy           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Call this function to destroy image pixels, alpha channel, selection and sub layers.<ul>
<li>Attributes are not erased, but IsValid returns false.</li></ul>
<p>
<dl compact><dt><b>Returns:</b></dt><dd>true if everything is freed, false if the image is a Ghost </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga7" doxytag="CxImage::FreeMemory" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void CxImage::FreeMemory           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>memblock</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
simply calls "if (memblock) free(memblock);". Useful when calling Encode for a memory buffer, from a DLL compiled with different memory management options. <a class="el" href="group___initialization.html#ga7">CxImage::FreeMemory</a> will use the same memory environment used by Encode.     </td>
  </tr>
</table>
<a class="anchor" name="ga4" doxytag="CxImage::Transfer" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool CxImage::Transfer           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="class_cx_image.html">CxImage</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>from</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Transfers the image from an existing source image. The source becomes empty. <dl compact><dt><b>Returns:</b></dt><dd>true if everything is ok </dd></dl>
    </td>
  </tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Oct 11 22:30:18 2004 for CxImage by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </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
Software Developer
France France
KOCH David, 41 years old
Coder (embedded, C/C++, ASM, Erlang)

Comments and Discussions