⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.74
Server IP:
104.21.64.1
Server:
Linux vmi2315822.contaboserver.net 5.15.0-134-generic #145-Ubuntu SMP Wed Feb 12 20:08:39 UTC 2025 x86_64
Server Software:
LiteSpeed
PHP Version:
8.3.21
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
liblqr-1-0-dev
/
html
/
View File Name :
ref-lqr-carver-rigmask-add.html
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>lqr_carver_rigmask_add</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="The Liquid Rescale library Manual"><link rel="up" href="ref-rigmask.html" title="Rigidity masks"><link rel="prev" href="ref-rigmask.html" title="Rigidity masks"><link rel="next" href="ref-lqr-carver-rigmask-clear.html" title="lqr_carver_rigmask_clear"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><code class="function">lqr_carver_rigmask_add</code></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref-rigmask.html">Prev</a>�</td><th width="60%" align="center">Rigidity masks</th><td width="20%" align="right">�<a accesskey="n" href="ref-lqr-carver-rigmask-clear.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="ref-lqr-carver-rigmask-add"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>lqr_carver_rigmask_add_xy, lqr_carver_rigmask_add_area, lqr_carver_rigmask_add, lqr_carver_rigmask_add_rgb_area, lqr_carver_rigmask_add_rgb — update an <code class="classname">LqrCarver</code> rigidity mask</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <lqr.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">LqrRetVal <b class="fsfunc">lqr_carver_rigmask_add_xy</b>(</code></td><td>LqrCarver* <var class="pdparam">carver</var>, </td></tr><tr><td>�</td><td>gdouble <var class="pdparam">rigidity</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">x</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">y</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">�</div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">LqrRetVal <b class="fsfunc">lqr_carver_rigmask_add_area</b>(</code></td><td>LqrCarver* <var class="pdparam">carver</var>, </td></tr><tr><td>�</td><td>gdouble* <var class="pdparam">buffer</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">width</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">height</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">x_off</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">y_off</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">�</div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">LqrRetVal <b class="fsfunc">lqr_carver_rigmask_add</b>(</code></td><td>LqrCarver* <var class="pdparam">carver</var>, </td></tr><tr><td>�</td><td>gdouble* <var class="pdparam">buffer</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">�</div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">LqrRetVal <b class="fsfunc">lqr_carver_rigmask_add_area</b>(</code></td><td>LqrCarver* <var class="pdparam">carver</var>, </td></tr><tr><td>�</td><td>gdouble* <var class="pdparam">buffer</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">channels</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">width</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">height</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">x_off</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">y_off</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">�</div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">LqrRetVal <b class="fsfunc">lqr_carver_rigmask_add_rgb</b>(</code></td><td>LqrCarver* <var class="pdparam">carver</var>, </td></tr><tr><td>�</td><td>gdouble* <var class="pdparam">buffer</var>, </td></tr><tr><td>�</td><td>gint <var class="pdparam">channels</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">�</div></div></div><div class="refsect1"><a name="idm5037"></a><h2>Foreword</h2><p> All the functions described in this page are used to add a rigidity mask to <code class="classname">LqrCarver</code> objects. Whenever one of these functions is called, a rigidity mask is activated for the whole image; the mask contains coefficients which modulate the value of the rigidity (which is set with <a class="xref" href="ref-lqr-carver-init.html" title="lqr_carver_init"><span class="refentrytitle"><code class="function">lqr_carver_init</code></span>(3)</a>) in different areas of the image. </p><p> It is very important to note that using no rigidity masks at all is equivalent to use a rigidity mask over the whole image with all the values set to <code class="literal">1.0</code>, but, when first adding a rigidity mask to a <code class="classname">LqrCarver</code> object, all the pixels outside the affected area will have their rigidity set to zero; therefore, the functions <code class="function">lqr_carver_rigmask_add_xy</code>, <code class="function">lqr_carver_rigmask_add_area</code> and <code class="function">lqr_carver_rigmask_add_rgb_area</code> actually affect the whole image, despite their name. </p><p> All the functions must be called after <code class="function">lqr_carver_init</code> and before <code class="function">lqr_carver_resize</code>. If called multiple times over the same area, new values will replace the old ones. </p></div><div class="refsect1"><a name="idm5051"></a><h2>Setting the rigidity mask pixel by pixel</h2><p> The function <code class="function">lqr_carver_rigmask_add_xy</code> sets the rigidity mask value of the <em class="parameter"><code>x</code></em>, <em class="parameter"><code>y</code></em> pixel of the image loaded into the <code class="classname">LqrCarver</code> object pointed to by <em class="parameter"><code>carver</code></em> </p></div><div class="refsect1"><a name="idm5059"></a><h2>Setting the rigidity mask from a buffer</h2><p> The function <code class="function">lqr_carver_rigmask_add_area</code> adds a rigidity mask to an area of the image loaded in the <code class="classname">LqrCarver</code> object pointed to by <em class="parameter"><code>carver</code></em>. </p><p> The parameter <em class="parameter"><code>buffer</code></em> must point to an array of <span class="type">doubles</span> of size <code class="literal"><em class="parameter"><code>width</code></em> * <em class="parameter"><code>height</code></em></code>, ordered first by rows, then by columns. </p><p> The offset of the area relative to the image are specified through <em class="parameter"><code>x_off</code></em> and <em class="parameter"><code>y_off</code></em>. The rigidity mask area can exceed the boundary of the image, and the offsets can be negative. </p><p> The values in the given <em class="parameter"><code>buffer</code></em> are scaled by the overall <em class="parameter"><code>rigidity</code></em> value set when calling the function <code class="function">lqr_carver_init</code>. </p><p> The function <code class="function">lqr_carver_rigmask_add</code> can be used when the area to add is of the same size of the image loaded in the <code class="classname">LqrCarver</code> object and the offsets are <code class="literal">0</code>. </p></div><div class="refsect1"><a name="idm5082"></a><h2>Setting the rigidity mask from an image</h2><p> The functions <code class="function">lqr_carver_rigmask_add_rgb_area</code> and <code class="function">lqr_carver_rigmask_add_rgb</code> are very similar to <code class="function">lqr_carver_rigmask_add_area</code> and <code class="function">lqr_carver_rigmask_add</code>, but use 8-bit multi-channel images as inputs. </p><p> The number of channels in the image is passed via the parameter <em class="parameter"><code>channels</code></em>. The last channel is assumed to be the alpha (opacity) channel if <em class="parameter"><code>channels</code></em> is equal to <code class="literal">2</code> or greater than <code class="literal">3</code> (if this is not the case, use the previous functions). </p><p> The rigidity value is computed from the average of the colour channels, multiplied by the value of the alpha channel if present. For example, in RGBA images a white, nontransparent pixel is equivalent to a value of <code class="literal">1.0</code> when using a buffer in <code class="function">lqr_carver_rigmask_add_area</code>. </p></div><div class="refsect1"><a name="idm5097"></a><h2>Return value</h2><p> The return values follow the Liquid Rescale library signalling system. </p></div><div class="refsect1"><a name="idm5100"></a><h2>See also</h2><p> <span class="simplelist"><a class="xref" href="ref-lqr-ret-val.html" title="LqrRetVal"><span class="refentrytitle"><span class="type">LqrRetVal</span></span>(3)</a>, <a class="xref" href="ref-lqr-carver-init.html" title="lqr_carver_init"><span class="refentrytitle"><code class="function">lqr_carver_init</code></span>(3)</a>, <a class="xref" href="ref-lqr-carver-bias-add.html" title="lqr_carver_bias_add"><span class="refentrytitle"><code class="function">lqr_carver_bias_add</code></span>(3)</a></span> </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref-rigmask.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="ref-rigmask.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="ref-lqr-carver-rigmask-clear.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Rigidity masks�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�<code class="function">lqr_carver_rigmask_clear</code></td></tr></table></div></body></html>