2018-12-26

This commit is contained in:
tastytea 2018-12-26 19:25:03 +01:00
parent 8da5520d81
commit 97ec8d60ed
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
12 changed files with 43 additions and 20 deletions

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>
@ -165,7 +165,7 @@ Public Member Functions</h2></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;: _rows(rows)</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;, _columns(columns)</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;, _type(type)</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;, _background(background)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;, _foreground(foreground)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; check_color(background);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;color : foreground)</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; check_color(color);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}</div></div><!-- fragment -->
<div class="fragment"><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;: _rows(rows)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;, _columns(columns)</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;, _type(type)</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;, _background(background)</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;, _foreground(foreground)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; check_color(background);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;color : foreground)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; check_color(color);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
@ -204,12 +204,15 @@ Public Member Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The image </dd></dl>
<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; check_entropy(digest, _type);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">const</span> uint16_t height = width / _columns * _rows;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; ttdebug &lt;&lt; <span class="stringliteral">&quot;width: &quot;</span> &lt;&lt; std::to_string(width)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; &lt;&lt; <span class="stringliteral">&quot;, height: &quot;</span> &lt;&lt; std::to_string(height) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">switch</span> (_type)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">case</span> identicon_type::simple:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> generate_simple(digest, width, height);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">case</span> identicon_type::libravatar:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">case</span> identicon_type::sigil:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> generate_libravatar(digest, width, height);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div></div><!-- fragment -->
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; check_entropy(digest, _type);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">const</span> uint16_t height = width / _columns * _rows;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; ttdebug &lt;&lt; <span class="stringliteral">&quot;width: &quot;</span> &lt;&lt; std::to_string(width)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; &lt;&lt; <span class="stringliteral">&quot;, height: &quot;</span> &lt;&lt; std::to_string(height) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">switch</span> (_type)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">case</span> identicon_type::simple:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> generate_simple(digest, width, height);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">case</span> identicon_type::libravatar:</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">case</span> identicon_type::sigil:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> generate_libravatar(digest, width, height);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/<a class="el" href="identiconpp_8hpp_source.html">identiconpp.hpp</a></li>
<li>src/checks.cpp</li>
<li>src/identiconpp.cpp</li>
<li>src/libravatar.cpp</li>
<li>src/simple.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>

File diff suppressed because one or more lines are too long

View File

@ -19,7 +19,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">identiconpp
&#160;<span id="projectnumber">0.1.1</span>
&#160;<span id="projectnumber">0.1.2</span>
</div>
</td>
</tr>
@ -44,25 +44,45 @@ $(function() {
</div><!--header-->
<div class="contents">
<div class="textblock"><p><b>identiconpp</b> is a library to generate identicons. Written in C++.</p>
<p>There are currently 2 types of identicons supported. libravatar/sigil and simple.</p>
<p>You get the images as <code>Magick::Image</code>. This allows you to make all kinds of modifications.</p>
<h2>Features</h2>
<ul>
<li>[x] Simple identicons</li>
<li>[ ] libravatar/sigil identicons</li>
</ul>
<h2>Usage</h2>
<p>The HTML reference can be generated with build_doc.sh, if doxygen is installed. It is also available at <a href="https://doc.schlomp.space/identiconpp/classIdenticonpp.html">doc.schlomp.space/identiconpp/</a>.</p>
<h2>Install</h2>
<h3>Example</h3>
<div class="fragment"><div class="line">{C++}</div><div class="line">// Compile with g++ $(Magick++-config --cppflags --ldflags) -lidenticonpp</div><div class="line">#include &lt;identiconpp.hpp&gt;</div><div class="line">#include &lt;Magick++/Image.h&gt;</div><div class="line"></div><div class="line">int main()</div><div class="line">{</div><div class="line"> Identiconpp identicon(5, 5, Identiconpp::identicon_type::simple,</div><div class="line"> &quot;ffffff88&quot;, { &quot;800000ff&quot; });</div><div class="line"> Magick::Image img;</div><div class="line"> img = identicon.generate(&quot;55502f40dc8b7c769880b10874abc9d0&quot;, 200);</div><div class="line"> img.write(&quot;identicon.png&quot;);</div><div class="line">}</div></div><!-- fragment --><h2>Install</h2>
<h3>Gentoo</h3>
<p>Gentoo ebuilds are available via my <a href="https://schlomp.space/tastytea/overlay">repository</a>.</p>
<h3>Automatically generated packages</h3>
<p>Binary packages are generated automatically for each <a href="https://schlomp.space/tastytea/identiconpp/releases">release</a> in the formats:</p>
<ul>
<li>deb</li>
<li>rpm</li>
<li>tar.gz</li>
</ul>
<p>They are generated on Debian Stretch 64 bit and signed with my <a href="https://tastytea.de/tastytea_autosign.asc">automatic signing key</a>.</p>
<h3>From source</h3>
<h4>Dependencies</h4>
<ul>
<li>C++ compiler (tested: <a href="https://gcc.gnu.org/">gcc</a> 5/6/7/8, <a href="https://llvm.org/">clang</a> 5/6)</li>
<li><a href="https://cmake.org/">cmake</a> (at least 3.2)</li>
<li><a href="https://cryptopp.com">crypto++</a> (tested: 7.0 / 5.6)</li>
<li><a href="https://www.imagemagick.org/">imagemagick</a> (tested: 7.0 / 6.7)</li>
</ul>
<p>On a Debian system, install the packages: <code>build-essential cmake libcrypto++-dev libmagick++-dev</code>.</p>
<p>On a Debian system, install the packages: <code>build-essential cmake libmagick++-dev</code>.</p>
<h4>Compile</h4>
<div class="fragment"><div class="line">mkdir build</div><div class="line">cd build</div><div class="line">cmake ..</div><div class="line">make</div><div class="line">make install</div></div><!-- fragment --><h5>cmake options</h5>
<ul>
<li><code>-DCMAKE_BUILD_TYPE=Debug</code> for a debug build</li>
<li>One of:<ul>
<li><code>-DWITH_DEB=YES</code> to generate a deb-package</li>
<li><code>-DWITH_RPM=YES</code> to generate an rpm-package</li>
</ul>
</li>
</ul>
<p>To generate a binary package, execute <code>make package</code></p>
<h2>Contributing</h2>
<p>Contributions are always welcome. You can submit them as pull requests or via email to <code>tastytea</code>&lt;tt&gt;tastytea.de.</p>
<h2>Contact</h2>