blob: 1420bf7292edfd31e9d7b5a402e56359d1b29cde [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>MagickCore: pixel-private.h Source File</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.4 -->
8<div class="nav">
9<a class="el" href="dir_b44b349db36f8365f5234e57d3038770.html">magick</a></div>
10<h1>pixel-private.h</h1><a href="pixel-private_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
cristy16af1cb2009-12-11 21:38:29 +000011<a name="l00002"></a>00002 <span class="comment"> Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization</span>
cristy3ed852e2009-09-05 21:47:34 +000012<a name="l00003"></a>00003 <span class="comment"> dedicated to making software imaging solutions freely available.</span>
13<a name="l00004"></a>00004 <span class="comment"> </span>
14<a name="l00005"></a>00005 <span class="comment"> You may not use this file except in compliance with the License.</span>
15<a name="l00006"></a>00006 <span class="comment"> obtain a copy of the License at</span>
16<a name="l00007"></a>00007 <span class="comment"> </span>
17<a name="l00008"></a>00008 <span class="comment"> http://www.imagemagick.org/script/license.php</span>
18<a name="l00009"></a>00009 <span class="comment"> </span>
19<a name="l00010"></a>00010 <span class="comment"> Unless required by applicable law or agreed to in writing, software</span>
20<a name="l00011"></a>00011 <span class="comment"> distributed under the License is distributed on an "AS IS" BASIS,</span>
21<a name="l00012"></a>00012 <span class="comment"> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
22<a name="l00013"></a>00013 <span class="comment"> See the License for the specific language governing permissions and</span>
23<a name="l00014"></a>00014 <span class="comment"> limitations under the License.</span>
24<a name="l00015"></a>00015 <span class="comment"></span>
25<a name="l00016"></a>00016 <span class="comment"> MagickCore image pixel private methods.</span>
26<a name="l00017"></a>00017 <span class="comment">*/</span>
27<a name="l00018"></a>00018 <span class="preprocessor">#ifndef _MAGICKCORE_PIXEL_PRIVATE_H</span>
28<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define _MAGICKCORE_PIXEL_PRIVATE_H</span>
29<a name="l00020"></a>00020 <span class="preprocessor"></span>
30<a name="l00021"></a>00021 <span class="preprocessor">#if defined(__cplusplus) || defined(c_plusplus)</span>
31<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
32<a name="l00023"></a>00023 <span class="preprocessor">#endif</span>
33<a name="l00024"></a>00024 <span class="preprocessor"></span>
34<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;<a class="code" href="exception-private_8h.html">magick/exception-private.h</a>&gt;</span>
35<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;<a class="code" href="image_8h.html">magick/image.h</a>&gt;</span>
36<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="color_8h.html">magick/color.h</a>&gt;</span>
37<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="image-private_8h.html">magick/image-private.h</a>&gt;</span>
38<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;<a class="code" href="quantum-private_8h.html">magick/quantum-private.h</a>&gt;</span>
39<a name="l00030"></a>00030
40<a name="l00031"></a><a class="code" href="struct__RealPixelPacket.html">00031</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__RealPixelPacket.html">_RealPixelPacket</a>
41<a name="l00032"></a>00032 {
42<a name="l00033"></a>00033 <a class="code" href="magick-type_8h.html#63ab595ab40d99ff825a4c39cc69c074">MagickRealType</a>
43<a name="l00034"></a><a class="code" href="struct__RealPixelPacket.html#8ef4a812aa7915bafa3a8f2245e56e9d">00034</a> <a class="code" href="struct__RealPixelPacket.html#8ef4a812aa7915bafa3a8f2245e56e9d">red</a>,
44<a name="l00035"></a>00035 <a class="code" href="struct__RealPixelPacket.html#a1f8ee70077936212828b324d29c747e">green</a>,
45<a name="l00036"></a>00036 <a class="code" href="struct__RealPixelPacket.html#fbcb936f2ad43a553f9d157fa434756b">blue</a>,
46<a name="l00037"></a>00037 <a class="code" href="struct__RealPixelPacket.html#83a8ad3a43baba90b9930aef33f572ad">opacity</a>;
47<a name="l00038"></a>00038 } <a class="code" href="struct__RealPixelPacket.html">RealPixelPacket</a>;
48<a name="l00039"></a>00039
49<a name="l00040"></a><a class="code" href="pixel-private_8h.html#c60ee393f7788ce9cf3948adebc74860">00040</a> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *<a class="code" href="pixel-private_8h.html#c60ee393f7788ce9cf3948adebc74860">CloneMagickPixelPacket</a>(
50<a name="l00041"></a>00041 <span class="keyword">const</span> <a class="code" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *pixel)
51<a name="l00042"></a>00042 {
52<a name="l00043"></a>00043 <a class="code" href="struct__MagickPixelPacket.html">MagickPixelPacket</a>
53<a name="l00044"></a>00044 *clone_pixel;
54<a name="l00045"></a>00045
55<a name="l00046"></a>00046 clone_pixel=(<a class="code" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *) <a class="code" href="memory_8c.html#dfa85454170b7389cea90ee8ec9657a2">AcquireMagickMemory</a>(<span class="keyword">sizeof</span>(*clone_pixel));
56<a name="l00047"></a>00047 <span class="keywordflow">if</span> (clone_pixel == (<a class="code" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *) NULL)
57<a name="l00048"></a>00048 <a class="code" href="exception-private_8h.html#c15dbf6efad63948302087a7e6fb5916">ThrowFatalException</a>(<a class="code" href="exception_8h.html#0e0f0f1661d7aeb71ed9698bff6c6383c63def6b6c8b18274ae5f7740d0e75d6">ResourceLimitFatalError</a>,<span class="stringliteral">"MemoryAllocationFailed"</span>);
58<a name="l00049"></a>00049 *clone_pixel=(*pixel);
59<a name="l00050"></a>00050 <span class="keywordflow">return</span>(clone_pixel);
60<a name="l00051"></a>00051 }
61<a name="l00052"></a>00052
62<a name="l00053"></a><a class="code" href="pixel-private_8h.html#20a73fc8daa94573b90af1a202e08fef">00053</a> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="pixel-private_8h.html#20a73fc8daa94573b90af1a202e08fef">SetMagickPixelPacket</a>(<span class="keyword">const</span> <a class="code" href="struct__Image.html">Image</a> *image,
63<a name="l00054"></a>00054 <span class="keyword">const</span> <a class="code" href="struct__PixelPacket.html">PixelPacket</a> *color,<span class="keyword">const</span> <a class="code" href="pixel_8h.html#6a47991f21fa07598194f14e9cab83c2">IndexPacket</a> *index,<a class="code" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *pixel)
64<a name="l00055"></a>00055 {
65<a name="l00056"></a>00056 pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#ff7ca39219d6c5f42faa9815bce9f173">red</a>=(<a class="code" href="magick-type_8h.html#63ab595ab40d99ff825a4c39cc69c074">MagickRealType</a>) color-&gt;<a class="code" href="struct__PixelPacket.html#f5a6eb37a9b0d850d8aabe7a96e50d15">red</a>;
66<a name="l00057"></a>00057 pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#ef2f6b6426929864e1eead988663e494">green</a>=(<a class="code" href="magick-type_8h.html#63ab595ab40d99ff825a4c39cc69c074">MagickRealType</a>) color-&gt;<a class="code" href="struct__PixelPacket.html#6b608b2e227fd0bff9a2e7689acc2d5f">green</a>;
67<a name="l00058"></a>00058 pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#ade0be72303eadbf06fbe64e01cbc301">blue</a>=(<a class="code" href="magick-type_8h.html#63ab595ab40d99ff825a4c39cc69c074">MagickRealType</a>) color-&gt;<a class="code" href="struct__PixelPacket.html#70693580f436f8cbec8693ac5db73110">blue</a>;
68<a name="l00059"></a>00059 pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#c8d93e00f1f3304acb97e9181be555d8">opacity</a>=(<a class="code" href="magick-type_8h.html#63ab595ab40d99ff825a4c39cc69c074">MagickRealType</a>) color-&gt;<a class="code" href="struct__PixelPacket.html#5e7890101ca154390eb9c819584e6910">opacity</a>;
69<a name="l00060"></a>00060 <span class="keywordflow">if</span> (((image-&gt;<a class="code" href="struct__Image.html#00a4ef1392bbd7cacfca988388b61125">colorspace</a> == <a class="code" href="colorspace_8h.html#5d516b430fa42c1f83b557f08128f3c26e2ce6ccd573353bc25333188a47642b">CMYKColorspace</a>) ||
70<a name="l00061"></a>00061 (image-&gt;<a class="code" href="struct__Image.html#2e5400a1c6bffcc980f01aa1a4c3ffc6">storage_class</a> == <a class="code" href="magick-type_8h.html#92f93237c843e4b3fff7b7cc4c80f415e32c8fe4d1e4bf527b07631cdc1e2305">PseudoClass</a>)) &amp;&amp;
71<a name="l00062"></a>00062 (index != (<span class="keyword">const</span> <a class="code" href="pixel_8h.html#6a47991f21fa07598194f14e9cab83c2">IndexPacket</a> *) NULL))
72<a name="l00063"></a>00063 pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#c271bb7d0f6353699e5365599ed0f86d">index</a>=(<a class="code" href="magick-type_8h.html#63ab595ab40d99ff825a4c39cc69c074">MagickRealType</a>) *index;
73<a name="l00064"></a>00064 }
74<a name="l00065"></a>00065
75<a name="l00066"></a><a class="code" href="pixel-private_8h.html#38ffbfed1972286ae07e84b638b58936">00066</a> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="pixel-private_8h.html#38ffbfed1972286ae07e84b638b58936">SetPixelPacket</a>(<span class="keyword">const</span> <a class="code" href="struct__Image.html">Image</a> *image,
76<a name="l00067"></a>00067 <span class="keyword">const</span> <a class="code" href="struct__MagickPixelPacket.html">MagickPixelPacket</a> *pixel,<a class="code" href="struct__PixelPacket.html">PixelPacket</a> *color,<a class="code" href="pixel_8h.html#6a47991f21fa07598194f14e9cab83c2">IndexPacket</a> *index)
77<a name="l00068"></a>00068 {
78<a name="l00069"></a>00069 color-&gt;<a class="code" href="struct__PixelPacket.html#f5a6eb37a9b0d850d8aabe7a96e50d15">red</a>=<a class="code" href="quantum_8h.html#40bf610f6d90b8a26954b0cb5822d5aa">RoundToQuantum</a>(pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#ff7ca39219d6c5f42faa9815bce9f173">red</a>);
79<a name="l00070"></a>00070 color-&gt;<a class="code" href="struct__PixelPacket.html#6b608b2e227fd0bff9a2e7689acc2d5f">green</a>=<a class="code" href="quantum_8h.html#40bf610f6d90b8a26954b0cb5822d5aa">RoundToQuantum</a>(pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#ef2f6b6426929864e1eead988663e494">green</a>);
80<a name="l00071"></a>00071 color-&gt;<a class="code" href="struct__PixelPacket.html#70693580f436f8cbec8693ac5db73110">blue</a>=<a class="code" href="quantum_8h.html#40bf610f6d90b8a26954b0cb5822d5aa">RoundToQuantum</a>(pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#ade0be72303eadbf06fbe64e01cbc301">blue</a>);
81<a name="l00072"></a>00072 color-&gt;<a class="code" href="struct__PixelPacket.html#5e7890101ca154390eb9c819584e6910">opacity</a>=<a class="code" href="quantum_8h.html#40bf610f6d90b8a26954b0cb5822d5aa">RoundToQuantum</a>(pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#c8d93e00f1f3304acb97e9181be555d8">opacity</a>);
82<a name="l00073"></a>00073 <span class="keywordflow">if</span> (((image-&gt;<a class="code" href="struct__Image.html#00a4ef1392bbd7cacfca988388b61125">colorspace</a> == <a class="code" href="colorspace_8h.html#5d516b430fa42c1f83b557f08128f3c26e2ce6ccd573353bc25333188a47642b">CMYKColorspace</a>) ||
83<a name="l00074"></a>00074 (image-&gt;<a class="code" href="struct__Image.html#2e5400a1c6bffcc980f01aa1a4c3ffc6">storage_class</a> == <a class="code" href="magick-type_8h.html#92f93237c843e4b3fff7b7cc4c80f415e32c8fe4d1e4bf527b07631cdc1e2305">PseudoClass</a>)) &amp;&amp;
84<a name="l00075"></a>00075 (index != (<span class="keyword">const</span> <a class="code" href="pixel_8h.html#6a47991f21fa07598194f14e9cab83c2">IndexPacket</a> *) NULL))
85<a name="l00076"></a>00076 *index=<a class="code" href="quantum_8h.html#40bf610f6d90b8a26954b0cb5822d5aa">RoundToQuantum</a>(pixel-&gt;<a class="code" href="struct__MagickPixelPacket.html#c271bb7d0f6353699e5365599ed0f86d">index</a>);
86<a name="l00077"></a>00077 }
87<a name="l00078"></a>00078
88<a name="l00079"></a>00079 <span class="preprocessor">#if defined(__cplusplus) || defined(c_plusplus)</span>
89<a name="l00080"></a>00080 <span class="preprocessor"></span>}
90<a name="l00081"></a>00081 <span class="preprocessor">#endif</span>
91<a name="l00082"></a>00082 <span class="preprocessor"></span>
92<a name="l00083"></a>00083 <span class="preprocessor">#endif</span>
93</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Sat Jan 26 14:50:29 2008 for MagickCore by&nbsp;
94<a href="http://www.doxygen.org/index.html">
95<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address>
96</body>
97</html>