blob: 499795043ca571a85b83efd87279c5cf4c5c218a [file] [log] [blame]
cristy10c87152010-06-26 16:12:21 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
4<head>
5 <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
6 <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U=" />
7 <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf" />
8 <style type="text/css" media="all">
9 @import url("../../www/magick.css");
10 </style>
11 <link rel="shortcut icon" href="../../images/wand.ico" type="images/vnd.microsoft.icon"/>
12 <title>ImageMagick: MagickCore, C API for ImageMagick: Image View Methods</title>
13 <meta http-equiv="Content-Language" content="en-US"/>
14 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
15 <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
16 <meta name="Generator" content="PHP"/>
17 <meta name="Keywords" content="magickcore, c, api, for, imagemagick:, image, view, methods, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
18 <meta name="Description" content="ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems. The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically."/>
19 <meta name="Rating" content="GENERAL"/>
20 <meta name="Robots" content="INDEX, FOLLOW"/>
21 <meta name="Generator" content="ImageMagick Studio LLC"/>
22 <meta name="Author" content="ImageMagick Studio LLC"/>
23 <meta name="Revisit-after" content="2 DAYS"/>
24 <meta name="Resource-type" content="document"/>
25 <meta name="Copyright" content="Copyright (c) 1999-2010 ImageMagick Studio LLC"/>
26 <meta name="Distribution" content="Global"/>
27</head>
28
29<body id="www-imagemagick-org">
30<div class="titlebar">
31<a href="../../index.html">
32 <img src="../../images/script.png" alt="[ImageMagick]"
33 style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
34<a href="http://www.networkredux.com">
35 <img src="../../images/networkredux.png" alt="[sponsor]"
36 style="margin: 45px auto; border: 0px; float: left;" /></a>
37<a href="http://www.imagemagick.org/discourse-server/">
38 <img src="../../images/logo.jpg" alt=""
39 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
40<a href="../../index.html">
41 <img src="../../images/sprite.jpg" alt=""
42 style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
43</div>
44
45<div class="eastbar">
46
47<div class="menu">
48 <a title="About ImageMagick" href="../../index.html">About ImageMagick</a>
49</div>
50<div class="sep"></div>
51<div class="menu">
52 <a title="Binary Releases" href="../../www/binary-releases.html">Binary Releases</a>
53</div>
54<div class="sub">
55 <a title="Binary Release: Unix" href="../../www/binary-releases.html#unix">Unix</a>
56</div>
57<div class="sub">
58 <a title="Binary Release: MacOS X" href="../../www/binary-releases.html#macosx">Mac OS X</a>
59</div>
60<div class="sub">
61 <a title="Binary Release: Windows" href="../../www/binary-releases.html#windows">Windows</a>
62</div>
63<div class="sep"></div>
64<div class="menu">
65 <a title="Command-line Tools" href="../../www/command-line-tools.html">Command-line Tools</a>
66</div>
67<div class="sub">
68 <a title="Command-line Tools: Processing" href="../../www/command-line-processing.html">Processing</a>
69</div>
70<div class="sub">
71 <a title="Command-line Tools: Options" href="../../www/command-line-options.html">Options</a>
72</div>
73<div class="sub">
74 <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
75</div>
76<div class="menu">
77 <a title="Program Interfaces" href="../../www/api.html">Program Interfaces</a>
78</div>
79<div class="sub">
80 <a title="Program Interface: MagickWand" href="../../www/magick-wand.html">MagickWand</a>
81</div>
82<div class="sub">
83 <a title="Program Interface: MagickCore" href="../../www/magick-core.html">MagickCore</a>
84</div>
85<div class="sub">
86 <a title="Program Interface: PerlMagick" href="../../www/perl-magick.html">PerlMagick</a>
87</div>
88<div class="sub">
89 <a title="Program Interface: Magick++" href="../../Magick++/">Magick++</a>
90</div>
91<div class="sep"></div>
92<div class="menu">
93 <a title="Install from Source" href="../../www/install-source.html">Install from Source</a>
94</div>
95<div class="sub">
96 <a title="Install from Source: Unix" href="../../www/install-source.html#unix">Unix</a>
97</div>
98<div class="sub">
99 <a title="Install from Source: Windows" href="../../www/install-source.html#windows">Windows</a>
100 </div>
101<div class="menu">
102 <a title="Resources" href="../../www/resources.html">Resources</a>
103</div>
104<div class="menu">
105 <a title="Architecture" href="../../www/architecture.html">Architecture</a>
106</div>
107<div class="menu">
108 <a title="Download" href="../../www/download.html">Download</a>
109</div>
110<div class="sep"></div>
111<div class="menu">
112 <a title="Search" href="../http://www.imagemagick.org/script/search.php">Search</a>
113</div>
114<div class="sep"></div>
115<div class="menu">
116 <a title="Site Map"href="../../www/sitemap.html">Site Map</a>
117</div>
118<div class="sub">
119 <a title="Site Map: Links"href="../../www/links.html">Links</a>
120</div>
121<div class="sep"></div>
122<div class="menu">
123 <a title="Sponsors" href="../../www/sponsors.html">Sponsors:</a>
124
125<div class="sponsbox">
126<div class="sponsor">
127 <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
128</div>
129<div class="sponsor">
130 <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
131</div>
132<div class="sponsor">
133 <a title="Sponsor: Deko.net" href="http://www.deko.net">Deko.net</a><!-- 201101010600 Peterssen-->
134</div>
135<div class="sponsor">
136 <a title="Sponsor: Kredit" href="http://www.online-kredit-index.de">Kredit</a><!-- 201007010120 Buchhorn -->
137</div>
138<div class="sponsor">
139 <a title="Sponsor: Druckerei" href="http://www.print24.de/">Druckerei</a><!-- 201009010720 -->
140</div>
141<div class="sponsor">
142 <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
143</div>
144<div class="sponsor">
145 <a title="Sponsor: Online-Magazin" href="http://www.unkostenbeitrag.de/" title="Online-Magazin">Online-Magazin</a><!-- 20101101000200 -->
146</div>
147</div>
148</div>
149
150
151</div>
152
153<div class="main">
154
155<p class="navigation-index">[<a href="#CloneImageView">CloneImageView</a> &bull; <a href="#DestroyImageView">DestroyImageView</a> &bull; <a href="#DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a> &bull; <a href="#GetImageViewException">GetImageViewException</a> &bull; <a href="#GetImageViewHeight">GetImageViewHeight</a> &bull; <a href="#GetImageViewIterator">GetImageViewIterator</a> &bull; <a href="#GetImageViewPixels">GetImageViewPixels</a> &bull; <a href="#GetImageViewImage">GetImageViewImage</a> &bull; <a href="#GetImageViewWidth">GetImageViewWidth</a> &bull; <a href="#GetImageViewX">GetImageViewX</a> &bull; <a href="#GetImageViewY">GetImageViewY</a> &bull; <a href="#IsImageView">IsImageView</a> &bull; <a href="#NewImageView">NewImageView</a> &bull; <a href="#NewImageViewRegion">NewImageViewRegion</a> &bull; <a href="#SetImageViewIterator">SetImageViewIterator</a> &bull; <a href="#TransferImageViewIterator">TransferImageViewIterator</a> &bull; <a href="#UpdateImageViewIterator">UpdateImageViewIterator</a>]</p>
156
157<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
158_8c.html" target="source" name="CloneImageView">CloneImageView</a></h2>
159<div class="doc-section">
160
161<p>CloneImageView() makes a copy of the specified pixel view.</p></ol>
162
163<p>The format of the CloneImageView method is:</p>
164
165<pre class="code">
166 ImageView *CloneImageView(const ImageView *pixel_view)
167</pre>
168
169<p>A description of each parameter follows:</p></ol>
170
171<h5>pixel_view</h5>
172<ol><p>the pixel view.</p></ol>
173
174 </div>
175<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
176_8c.html" target="source" name="DestroyImageView">DestroyImageView</a></h2>
177<div class="doc-section">
178
179<p>DestroyImageView() deallocates memory associated with a pixel view.</p></ol>
180
181<p>The format of the DestroyImageView method is:</p>
182
183<pre class="code">
184 ImageView *DestroyImageView(ImageView *pixel_view,
185 const size_t number_wands,const size_t number_threads)
186</pre>
187
188<p>A description of each parameter follows:</p></ol>
189
190<h5>pixel_view</h5>
191<ol><p>the pixel view.</p></ol>
192
193<h5>number_wand</h5>
194<ol><p>the number of pixel wands.</p></ol>
195
196<h5>number_threads</h5>
197<ol><p>number of threads.</p></ol>
198
199 </div>
200<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
201_8c.html" target="source" name="DuplexTransferImageViewIterator">DuplexTransferImageViewIterator</a></h2>
202<div class="doc-section">
203
204<p>DuplexTransferImageViewIterator() iterates over three pixel views in parallel and calls your transfer method for each scanline of the view. The source and duplex pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination pixel view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p></ol>
205
206<p>Use this pragma:</p>
207
208<pre class="text">
209 #pragma omp critical
210</pre>
211
212<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p></ol>
213
214<p>The format of the DuplexTransferImageViewIterator method is:</p>
215
216<pre class="code">
217 MagickBooleanType DuplexTransferImageViewIterator(ImageView *source,
218 ImageView *duplex,ImageView *destination,
219 DuplexTransferImageViewMethod transfer,void *context)
220</pre>
221
222<p>A description of each parameter follows:</p></ol>
223
224<h5>source</h5>
225<ol><p>the source pixel view.</p></ol>
226
227<h5>duplex</h5>
228<ol><p>the duplex pixel view.</p></ol>
229
230<h5>destination</h5>
231<ol><p>the destination pixel view.</p></ol>
232
233<h5>transfer</h5>
234<ol><p>the transfer callback method.</p></ol>
235
236<h5>context</h5>
237<ol><p>the user defined context.</p></ol>
238
239 </div>
240<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
241_8c.html" target="source" name="GetImageViewException">GetImageViewException</a></h2>
242<div class="doc-section">
243
244<p>GetImageViewException() returns the severity, reason, and description of any error that occurs when utilizing a pixel view.</p></ol>
245
246<p>The format of the GetImageViewException method is:</p>
247
248<pre class="code">
249 char *GetImageViewException(const PixelImage *pixel_view,
250 ExceptionType *severity)
251</pre>
252
253<p>A description of each parameter follows:</p></ol>
254
255<h5>pixel_view</h5>
256<ol><p>the pixel pixel_view.</p></ol>
257
258<h5>severity</h5>
259<ol><p>the severity of the error is returned here.</p></ol>
260
261 </div>
262<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
263_8c.html" target="source" name="GetImageViewHeight">GetImageViewHeight</a></h2>
264<div class="doc-section">
265
266<p>GetImageViewHeight() returns the pixel view height.</p></ol>
267
268<p>The format of the GetImageViewHeight method is:</p>
269
270<pre class="code">
271 size_t GetImageViewHeight(const ImageView *pixel_view)
272</pre>
273
274<p>A description of each parameter follows:</p></ol>
275
276<h5>pixel_view</h5>
277<ol><p>the pixel view.</p></ol>
278
279 </div>
280<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
281_8c.html" target="source" name="GetImageViewIterator">GetImageViewIterator</a></h2>
282<div class="doc-section">
283
284<p>GetImageViewIterator() iterates over the pixel view in parallel and calls your get method for each scanline of the view. The pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. Any updates to the pixels in your callback are ignored.</p></ol>
285
286<p>Use this pragma:</p>
287
288<pre class="text">
289 #pragma omp critical
290</pre>
291
292<p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p></ol>
293
294<p>The format of the GetImageViewIterator method is:</p>
295
296<pre class="code">
297 MagickBooleanType GetImageViewIterator(ImageView *source,
298 GetImageViewMethod get,void *context)
299</pre>
300
301<p>A description of each parameter follows:</p></ol>
302
303<h5>source</h5>
304<ol><p>the source pixel view.</p></ol>
305
306<h5>get</h5>
307<ol><p>the get callback method.</p></ol>
308
309<h5>context</h5>
310<ol><p>the user defined context.</p></ol>
311
312 </div>
313<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
314_8c.html" target="source" name="GetImageViewPixels">GetImageViewPixels</a></h2>
315<div class="doc-section">
316
317<p>GetImageViewPixels() returns the pixel view pixel_wands.</p></ol>
318
319<p>The format of the GetImageViewPixels method is:</p>
320
321<pre class="code">
322 PixelImage *GetImageViewPixels(const ImageView *pixel_view)
323</pre>
324
325<p>A description of each parameter follows:</p></ol>
326
327<h5>pixel_view</h5>
328<ol><p>the pixel view.</p></ol>
329
330 </div>
331<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
332_8c.html" target="source" name="GetImageViewImage">GetImageViewImage</a></h2>
333<div class="doc-section">
334
335<p>GetImageViewImage() returns the magick wand associated with the pixel view.</p></ol>
336
337<p>The format of the GetImageViewImage method is:</p>
338
339<pre class="code">
340 MagickCore *GetImageViewImage(const ImageView *pixel_view)
341</pre>
342
343<p>A description of each parameter follows:</p></ol>
344
345<h5>pixel_view</h5>
346<ol><p>the pixel view.</p></ol>
347
348 </div>
349<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
350_8c.html" target="source" name="GetImageViewWidth">GetImageViewWidth</a></h2>
351<div class="doc-section">
352
353<p>GetImageViewWidth() returns the pixel view width.</p></ol>
354
355<p>The format of the GetImageViewWidth method is:</p>
356
357<pre class="code">
358 size_t GetImageViewWidth(const ImageView *pixel_view)
359</pre>
360
361<p>A description of each parameter follows:</p></ol>
362
363<h5>pixel_view</h5>
364<ol><p>the pixel view.</p></ol>
365
366 </div>
367<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
368_8c.html" target="source" name="GetImageViewX">GetImageViewX</a></h2>
369<div class="doc-section">
370
371<p>GetImageViewX() returns the pixel view x offset.</p></ol>
372
373<p>The format of the GetImageViewX method is:</p>
374
375<pre class="code">
376 ssize_t GetImageViewX(const ImageView *pixel_view)
377</pre>
378
379<p>A description of each parameter follows:</p></ol>
380
381<h5>pixel_view</h5>
382<ol><p>the pixel view.</p></ol>
383
384 </div>
385<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
386_8c.html" target="source" name="GetImageViewY">GetImageViewY</a></h2>
387<div class="doc-section">
388
389<p>GetImageViewY() returns the pixel view y offset.</p></ol>
390
391<p>The format of the GetImageViewY method is:</p>
392
393<pre class="code">
394 ssize_t GetImageViewY(const ImageView *pixel_view)
395</pre>
396
397<p>A description of each parameter follows:</p></ol>
398
399<h5>pixel_view</h5>
400<ol><p>the pixel view.</p></ol>
401
402 </div>
403<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
404_8c.html" target="source" name="IsImageView">IsImageView</a></h2>
405<div class="doc-section">
406
407<p>IsImageView() returns MagickTrue if the the parameter is verified as a pixel view container.</p></ol>
408
409<p>The format of the IsImageView method is:</p>
410
411<pre class="code">
412 MagickBooleanType IsImageView(const ImageView *pixel_view)
413</pre>
414
415<p>A description of each parameter follows:</p></ol>
416
417<h5>pixel_view</h5>
418<ol><p>the pixel view.</p></ol>
419
420 </div>
421<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
422_8c.html" target="source" name="NewImageView">NewImageView</a></h2>
423<div class="doc-section">
424
425<p>NewImageView() returns a pixel view required for all other methods in the Pixel View API.</p></ol>
426
427<p>The format of the NewImageView method is:</p>
428
429<pre class="code">
430 ImageView *NewImageView(MagickCore *wand)
431</pre>
432
433<p>A description of each parameter follows:</p></ol>
434
435<h5>wand</h5>
436<ol><p>the wand.</p></ol>
437
438 </div>
439<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
440_8c.html" target="source" name="NewImageViewRegion">NewImageViewRegion</a></h2>
441<div class="doc-section">
442
443<p>NewImageViewRegion() returns a pixel view required for all other methods in the Pixel View API.</p></ol>
444
445<p>The format of the NewImageViewRegion method is:</p>
446
447<pre class="code">
448 ImageView *NewImageViewRegion(MagickCore *wand,const ssize_t x,
449 const ssize_t y,const size_t width,const size_t height)
450</pre>
451
452<p>A description of each parameter follows:</p></ol>
453
454<h5>wand</h5>
455<ol><p>the magick wand.</p></ol>
456
457<h5>x,y,columns,rows</h5>
458<ol><p>These values define the perimeter of a region of pixel_wands view.</p></ol>
459
460 </div>
461<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
462_8c.html" target="source" name="SetImageViewIterator">SetImageViewIterator</a></h2>
463<div class="doc-section">
464
465<p>SetImageViewIterator() iterates over the pixel view in parallel and calls your set method for each scanline of the view. The pixel region is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension. The pixels are initiallly undefined and any settings you make in the callback method are automagically synced back to your image.</p></ol>
466
467<p>Use this pragma:</p>
468
469<pre class="text">
470 #pragma omp critical
471</pre>
472
473<p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p></ol>
474
475<p>The format of the SetImageViewIterator method is:</p>
476
477<pre class="code">
478 MagickBooleanType SetImageViewIterator(ImageView *destination,
479 SetImageViewMethod set,void *context)
480</pre>
481
482<p>A description of each parameter follows:</p></ol>
483
484<h5>destination</h5>
485<ol><p>the pixel view.</p></ol>
486
487<h5>set</h5>
488<ol><p>the set callback method.</p></ol>
489
490<h5>context</h5>
491<ol><p>the user defined context.</p></ol>
492
493 </div>
494<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
495_8c.html" target="source" name="TransferImageViewIterator">TransferImageViewIterator</a></h2>
496<div class="doc-section">
497
498<p>TransferImageViewIterator() iterates over two pixel views in parallel and calls your transfer method for each scanline of the view. The source pixel region is not confined to the image canvas-- that is you can include negative offsets or widths or heights that exceed the image dimension. However, the destination pixel view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p></ol>
499
500<p>Use this pragma:</p>
501
502<pre class="text">
503 #pragma omp critical
504</pre>
505
506<p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p></ol>
507
508<p>The format of the TransferImageViewIterator method is:</p>
509
510<pre class="code">
511 MagickBooleanType TransferImageViewIterator(ImageView *source,
512 ImageView *destination,TransferImageViewMethod transfer,void *context)
513</pre>
514
515<p>A description of each parameter follows:</p></ol>
516
517<h5>source</h5>
518<ol><p>the source pixel view.</p></ol>
519
520<h5>destination</h5>
521<ol><p>the destination pixel view.</p></ol>
522
523<h5>transfer</h5>
524<ol><p>the transfer callback method.</p></ol>
525
526<h5>context</h5>
527<ol><p>the user defined context.</p></ol>
528
529 </div>
530<h2><a href="http://www.imagemagick.org/api/MagickCore/image-view
531_8c.html" target="source" name="UpdateImageViewIterator">UpdateImageViewIterator</a></h2>
532<div class="doc-section">
533
534<p>UpdateImageViewIterator() iterates over the pixel view in parallel and calls your update method for each scanline of the view. The pixel region is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted. Updates to pixels in your callback are automagically synced back to the image.</p></ol>
535
536<p>Use this pragma:</p>
537
538<pre class="text">
539 #pragma omp critical
540</pre>
541
542<p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p></ol>
543
544<p>The format of the UpdateImageViewIterator method is:</p>
545
546<pre class="code">
547 MagickBooleanType UpdateImageViewIterator(ImageView *source,
548 UpdateImageViewMethod update,void *context)
549</pre>
550
551<p>A description of each parameter follows:</p></ol>
552
553<h5>source</h5>
554<ol><p>the source pixel view.</p></ol>
555
556<h5>update</h5>
557<ol><p>the update callback method.</p></ol>
558
559<h5>context</h5>
560<ol><p>the user defined context.</p></ol>
561
562 </div>
563
564</div>
565
566<div id="linkbar">
567 <!-- <span id="linkbar-west">&nbsp;</span> -->
568 <span id="linkbar-center">
569 <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
570 <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
571 </span>
572 <span id="linkbar-east">&nbsp;</span>
573 </div>
574 <div class="footer">
575 <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>
576 <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
577 </div>
578 <div style="clear: both; margin: 0; width: 100%; "></div>
579</body>
580</html>