]> granicus.if.org Git - imagemagick/blob - www/api/pixel-view.html
(no commit message)
[imagemagick] / www / api / pixel-view.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r
2     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
4 <head>\r
5   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U=" />\r
6   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf" />\r
7   <style type="text/css" media="screen,projection"><!--\r
8     @import url("../../www/magick.css");\r
9   --></style>\r
10   <link rel="shortcut icon" href="../../images/wand.ico"  type="images/vnd.microsoft.icon"/>
11   <title>ImageMagick: MagickWand, C API for ImageMagick: Pixel View Methods</title>
12   <meta http-equiv="Content-Language" content="en-US"/>
13   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
14   <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
15   <meta name="Generator" content="PHP"/>
16   <meta name="Keywords" content="magickwc, api, for, imagemagick:, pixel, view, methods, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
17   <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."/>
18   <meta name="Rating" content="GENERAL"/>
19   <meta name="Robots" content="INDEX, FOLLOW"/>
20   <meta name="Generator" content="ImageMagick Studio LLC"/>
21   <meta name="Author" content="ImageMagick Studio LLC"/>
22   <meta name="Revisit-after" content="2 DAYS"/>
23   <meta name="Resource-type" content="document"/>
24   <meta name="Copyright" content="Copyright (c) 1999-2009 ImageMagick Studio LLC"/>
25   <meta name="Distribution" content="Global"/>
26 </head>\r
27 \r
28 <body id="www-imagemagick-org">\r
29 <div class="titlebar">\r
30 <a href="../../index.html">\r
31   <img src="../../images/script.png" alt="[ImageMagick]"\r
32   style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
33 <a href="http://www.networkredux.com">\r
34   <img src="../../images/networkredux.png" alt="[sponsor]"\r
35   style="margin: 45px auto; border: 0px; float: left;" /></a>\r
36 <a href="http://www.imagemagick.org/discourse-server/">\r
37   <img src="../../images/logo.jpg" alt=""\r
38   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
39 <a href="../../index.html">\r
40   <img src="../../images/sprite.jpg" alt=""\r
41   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
42 </div>\r
43 \r
44 <div class="eastbar">\r
45 \r
46 <div class="menu">
47   <a href="../../index.html">About ImageMagick</a>
48 </div>
49 <div class="sep"></div>\r
50 <div class="menu">
51   <a href="../../www/command-line-tools.html">Command-line Tools</a>
52 </div>
53 <div class="sub">
54     <a href="../../www/command-line-processing.html">Processing</a>
55 </div>
56 <div class="sub">
57     <a href="../../www/command-line-options.html">Options</a>
58 </div>
59 <div class="sub">
60     <a href="http://www.imagemagick.org/Usage/">Usage</a>
61 </div>
62 <div class="menu">
63   <a href="../../www/api.html">Program Interfaces</a>
64 </div>
65 <div class="sub">
66     <a href="../../www/magick-wand.html">MagickWand</a>
67 </div>
68 <div class="sub">
69     <a href="../../www/magick-core.html">MagickCore</a>
70 </div>
71 <div class="sub">
72     <a href="../../www/perl-magick.html">PerlMagick</a>
73 </div>
74 <div class="sub">
75     <a href="../../Magick++/">Magick++</a>
76 </div>
77 <div class="menu">
78   <a href="../../www/architecture.html">Architecture</a>
79 </div>
80 <div class="sep"></div>\r
81 <div  class="menu">
82    <a href="../../www/install-source.html">Install from Source</a>
83 </div>
84 <div class="sub">
85     <a href="../../www/install-source.html#unix">Unix</a>
86 </div>
87 <div class="sub">
88     <a href="../../www/install-source.html#windows">Windows</a>
89  </div>
90 <div class="menu">
91   <a href="../../www/binary-releases.html">Binary Releases</a>
92 </div>
93 <div class="sub">
94     <a href="../../www/binary-releases.html#unix">Unix</a>
95 </div>
96 <div class="sub">
97     <a href="../../www/binary-releases.html#macosx">Mac OS X</a>
98 </div>
99 <div class="sub">
100     <a href="../../www/binary-releases.html#windows">Windows</a>
101 </div>
102 <div class="menu">
103   <a href="../../www/resources.html">Resources</a>
104 </div>
105 <div class="sep"></div>\r
106 <div class="menu">
107   <a href="../../www/download.html">Download</a>
108 </div>
109 <div class="sep"></div>\r
110 <div class="menu">
111   <a href="../http://www.imagemagick.org/script/search.php">Search</a>
112 </div>
113 <div class="sep"></div>\r
114 <div class="menu">
115   <a href="../../www/sitemap.html">Site Map</a>
116 </div>
117 <div  class="sub">
118     <a href="../../www/links.html">Links</a>
119 </div>
120 <div class="sep"></div>\r
121 <div  class="menu">
122   <a href="../../www/sponsors.html">Sponsors:</a>
123
124 <div class="sponsbox">
125 <div  class="sponsor">
126    <a href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012001200 allesdruck.de-->
127 </div>
128 <div  class="sponsor">
129   <a href="http://www.blumenversender.com">Blumenversand</a><!-- 200911010120 -->
130 </div>
131 <div  class="sponsor">
132   <a href="http://www.print24.de/">Druckerei</a><!-- 200911010480 -->
133 </div>
134 <div  class="sponsor">
135   <a href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 201002010000 -->
136 </div>
137 <div  class="sponsor">
138   <a href="http://www.online-kredit-index.de">Kredit</a><!-- 201001010120 Buchhorn -->
139 </div>
140 </div>
141 </div>
142 \r
143 \r
144 </div>\r
145 \r
146 <div class="main">\r
147 \r
148 <p class="navigation-index">[<a href="#ClonePixelView">ClonePixelView</a> &bull; <a href="#DestroyPixelView">DestroyPixelView</a> &bull; <a href="#DuplexTransferPixelViewIterator">DuplexTransferPixelViewIterator</a> &bull; <a href="#GetPixelViewException">GetPixelViewException</a> &bull; <a href="#GetPixelViewHeight">GetPixelViewHeight</a> &bull; <a href="#GetPixelViewIterator">GetPixelViewIterator</a> &bull; <a href="#GetPixelViewPixels">GetPixelViewPixels</a> &bull; <a href="#GetPixelViewWand">GetPixelViewWand</a> &bull; <a href="#GetPixelViewWidth">GetPixelViewWidth</a> &bull; <a href="#GetPixelViewX">GetPixelViewX</a> &bull; <a href="#GetPixelViewY">GetPixelViewY</a> &bull; <a href="#IsPixelView">IsPixelView</a> &bull; <a href="#NewPixelView">NewPixelView</a> &bull; <a href="#NewPixelViewRegion">NewPixelViewRegion</a> &bull; <a href="#SetPixelViewIterator">SetPixelViewIterator</a> &bull; <a href="#TransferPixelViewIterator">TransferPixelViewIterator</a> &bull; <a href="#UpdatePixelViewIterator">UpdatePixelViewIterator</a>]</p>
149
150 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
151 _8c.html" target="source" name="ClonePixelView">ClonePixelView</a></h2>
152 <div class="doc-section">
153
154 <p>ClonePixelView() makes a copy of the specified pixel view.</p></ol>
155
156 <p>The format of the ClonePixelView method is:</p>
157
158 <pre class="code">
159   PixelView *ClonePixelView(const PixelView *pixel_view)
160 </pre>
161
162 <p>A description of each parameter follows:</p></ol>
163
164 <h5>pixel_view</h5>
165 <ol><p>the pixel view.</p></ol>
166
167  </div>
168 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
169 _8c.html" target="source" name="DestroyPixelView">DestroyPixelView</a></h2>
170 <div class="doc-section">
171
172 <p>DestroyPixelView() deallocates memory associated with a pixel view.</p></ol>
173
174 <p>The format of the DestroyPixelView method is:</p>
175
176 <pre class="code">
177   PixelView *DestroyPixelView(PixelView *pixel_view,
178     const unsigned long number_wands,const unsigned long number_threads)
179 </pre>
180
181 <p>A description of each parameter follows:</p></ol>
182
183 <h5>pixel_view</h5>
184 <ol><p>the pixel view.</p></ol>
185
186 <h5>number_wand</h5>
187 <ol><p>the number of pixel wands.</p></ol>
188
189 <h5>number_threads</h5>
190 <ol><p>number of threads.</p></ol>
191
192  </div>
193 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
194 _8c.html" target="source" name="DuplexTransferPixelViewIterator">DuplexTransferPixelViewIterator</a></h2>
195 <div class="doc-section">
196
197 <p>DuplexTransferPixelViewIterator() 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>
198
199 <p>Use this pragma:</p>
200
201 <pre class="text">
202       #pragma omp critical
203 </pre>
204
205 <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>
206
207 <p>The format of the DuplexTransferPixelViewIterator method is:</p>
208
209 <pre class="code">
210   MagickBooleanType DuplexTransferPixelViewIterator(PixelView *source,
211     PixelView *duplex,PixelView *destination,
212     DuplexTransferPixelViewMethod transfer,void *context)
213 </pre>
214
215 <p>A description of each parameter follows:</p></ol>
216
217 <h5>source</h5>
218 <ol><p>the source pixel view.</p></ol>
219
220 <h5>duplex</h5>
221 <ol><p>the duplex pixel view.</p></ol>
222
223 <h5>destination</h5>
224 <ol><p>the destination pixel view.</p></ol>
225
226 <h5>transfer</h5>
227 <ol><p>the transfer callback method.</p></ol>
228
229 <h5>context</h5>
230 <ol><p>the user defined context.</p></ol>
231
232  </div>
233 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
234 _8c.html" target="source" name="GetPixelViewException">GetPixelViewException</a></h2>
235 <div class="doc-section">
236
237 <p>GetPixelViewException() returns the severity, reason, and description of any error that occurs when utilizing a pixel view.</p></ol>
238
239 <p>The format of the GetPixelViewException method is:</p>
240
241 <pre class="code">
242   char *GetPixelViewException(const PixelWand *pixel_view,
243     ExceptionType *severity)
244 </pre>
245
246 <p>A description of each parameter follows:</p></ol>
247
248 <h5>pixel_view</h5>
249 <ol><p>the pixel pixel_view.</p></ol>
250
251 <h5>severity</h5>
252 <ol><p>the severity of the error is returned here.</p></ol>
253
254  </div>
255 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
256 _8c.html" target="source" name="GetPixelViewHeight">GetPixelViewHeight</a></h2>
257 <div class="doc-section">
258
259 <p>GetPixelViewHeight() returns the pixel view height.</p></ol>
260
261 <p>The format of the GetPixelViewHeight method is:</p>
262
263 <pre class="code">
264   unsigned long GetPixelViewHeight(const PixelView *pixel_view)
265 </pre>
266
267 <p>A description of each parameter follows:</p></ol>
268
269 <h5>pixel_view</h5>
270 <ol><p>the pixel view.</p></ol>
271
272  </div>
273 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
274 _8c.html" target="source" name="GetPixelViewIterator">GetPixelViewIterator</a></h2>
275 <div class="doc-section">
276
277 <p>GetPixelViewIterator() 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>
278
279 <p>Use this pragma:</p>
280
281 <pre class="text">
282       #pragma omp critical
283 </pre>
284
285 <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>
286
287 <p>The format of the GetPixelViewIterator method is:</p>
288
289 <pre class="code">
290   MagickBooleanType GetPixelViewIterator(PixelView *source,
291     GetPixelViewMethod get,void *context)
292 </pre>
293
294 <p>A description of each parameter follows:</p></ol>
295
296 <h5>source</h5>
297 <ol><p>the source pixel view.</p></ol>
298
299 <h5>get</h5>
300 <ol><p>the get callback method.</p></ol>
301
302 <h5>context</h5>
303 <ol><p>the user defined context.</p></ol>
304
305  </div>
306 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
307 _8c.html" target="source" name="GetPixelViewPixels">GetPixelViewPixels</a></h2>
308 <div class="doc-section">
309
310 <p>GetPixelViewPixels() returns the pixel view pixel_wands.</p></ol>
311
312 <p>The format of the GetPixelViewPixels method is:</p>
313
314 <pre class="code">
315   PixelWand *GetPixelViewPixels(const PixelView *pixel_view)
316 </pre>
317
318 <p>A description of each parameter follows:</p></ol>
319
320 <h5>pixel_view</h5>
321 <ol><p>the pixel view.</p></ol>
322
323  </div>
324 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
325 _8c.html" target="source" name="GetPixelViewWand">GetPixelViewWand</a></h2>
326 <div class="doc-section">
327
328 <p>GetPixelViewWand() returns the magick wand associated with the pixel view.</p></ol>
329
330 <p>The format of the GetPixelViewWand method is:</p>
331
332 <pre class="code">
333   MagickWand *GetPixelViewWand(const PixelView *pixel_view)
334 </pre>
335
336 <p>A description of each parameter follows:</p></ol>
337
338 <h5>pixel_view</h5>
339 <ol><p>the pixel view.</p></ol>
340
341  </div>
342 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
343 _8c.html" target="source" name="GetPixelViewWidth">GetPixelViewWidth</a></h2>
344 <div class="doc-section">
345
346 <p>GetPixelViewWidth() returns the pixel view width.</p></ol>
347
348 <p>The format of the GetPixelViewWidth method is:</p>
349
350 <pre class="code">
351   unsigned long GetPixelViewWidth(const PixelView *pixel_view)
352 </pre>
353
354 <p>A description of each parameter follows:</p></ol>
355
356 <h5>pixel_view</h5>
357 <ol><p>the pixel view.</p></ol>
358
359  </div>
360 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
361 _8c.html" target="source" name="GetPixelViewX">GetPixelViewX</a></h2>
362 <div class="doc-section">
363
364 <p>GetPixelViewX() returns the pixel view x offset.</p></ol>
365
366 <p>The format of the GetPixelViewX method is:</p>
367
368 <pre class="code">
369   long GetPixelViewX(const PixelView *pixel_view)
370 </pre>
371
372 <p>A description of each parameter follows:</p></ol>
373
374 <h5>pixel_view</h5>
375 <ol><p>the pixel view.</p></ol>
376
377  </div>
378 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
379 _8c.html" target="source" name="GetPixelViewY">GetPixelViewY</a></h2>
380 <div class="doc-section">
381
382 <p>GetPixelViewY() returns the pixel view y offset.</p></ol>
383
384 <p>The format of the GetPixelViewY method is:</p>
385
386 <pre class="code">
387   long GetPixelViewY(const PixelView *pixel_view)
388 </pre>
389
390 <p>A description of each parameter follows:</p></ol>
391
392 <h5>pixel_view</h5>
393 <ol><p>the pixel view.</p></ol>
394
395  </div>
396 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
397 _8c.html" target="source" name="IsPixelView">IsPixelView</a></h2>
398 <div class="doc-section">
399
400 <p>IsPixelView() returns MagickTrue if the the parameter is verified as a pixel view container.</p></ol>
401
402 <p>The format of the IsPixelView method is:</p>
403
404 <pre class="code">
405   MagickBooleanType IsPixelView(const PixelView *pixel_view)
406 </pre>
407
408 <p>A description of each parameter follows:</p></ol>
409
410 <h5>pixel_view</h5>
411 <ol><p>the pixel view.</p></ol>
412
413  </div>
414 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
415 _8c.html" target="source" name="NewPixelView">NewPixelView</a></h2>
416 <div class="doc-section">
417
418 <p>NewPixelView() returns a pixel view required for all other methods in the Pixel View API.</p></ol>
419
420 <p>The format of the NewPixelView method is:</p>
421
422 <pre class="code">
423   PixelView *NewPixelView(MagickWand *wand)
424 </pre>
425
426 <p>A description of each parameter follows:</p></ol>
427
428 <h5>wand</h5>
429 <ol><p>the wand.</p></ol>
430
431  </div>
432 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
433 _8c.html" target="source" name="NewPixelViewRegion">NewPixelViewRegion</a></h2>
434 <div class="doc-section">
435
436 <p>NewPixelViewRegion() returns a pixel view required for all other methods in the Pixel View API.</p></ol>
437
438 <p>The format of the NewPixelViewRegion method is:</p>
439
440 <pre class="code">
441   PixelView *NewPixelViewRegion(MagickWand *wand,const long x,
442     const long y,const unsigned long width,const unsigned long height)
443 </pre>
444
445 <p>A description of each parameter follows:</p></ol>
446
447 <h5>wand</h5>
448 <ol><p>the magick wand.</p></ol>
449
450 <h5>x,y,columns,rows</h5>
451 <ol><p>These values define the perimeter of a region of pixel_wands view.</p></ol>
452
453  </div>
454 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
455 _8c.html" target="source" name="SetPixelViewIterator">SetPixelViewIterator</a></h2>
456 <div class="doc-section">
457
458 <p>SetPixelViewIterator() 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>
459
460 <p>Use this pragma:</p>
461
462 <pre class="text">
463       #pragma omp critical
464 </pre>
465
466 <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>
467
468 <p>The format of the SetPixelViewIterator method is:</p>
469
470 <pre class="code">
471   MagickBooleanType SetPixelViewIterator(PixelView *destination,
472     SetPixelViewMethod set,void *context)
473 </pre>
474
475 <p>A description of each parameter follows:</p></ol>
476
477 <h5>destination</h5>
478 <ol><p>the pixel view.</p></ol>
479
480 <h5>set</h5>
481 <ol><p>the set callback method.</p></ol>
482
483 <h5>context</h5>
484 <ol><p>the user defined context.</p></ol>
485
486  </div>
487 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
488 _8c.html" target="source" name="TransferPixelViewIterator">TransferPixelViewIterator</a></h2>
489 <div class="doc-section">
490
491 <p>TransferPixelViewIterator() 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>
492
493 <p>Use this pragma:</p>
494
495 <pre class="text">
496       #pragma omp critical
497 </pre>
498
499 <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>
500
501 <p>The format of the TransferPixelViewIterator method is:</p>
502
503 <pre class="code">
504   MagickBooleanType TransferPixelViewIterator(PixelView *source,
505     PixelView *destination,TransferPixelViewMethod transfer,void *context)
506 </pre>
507
508 <p>A description of each parameter follows:</p></ol>
509
510 <h5>source</h5>
511 <ol><p>the source pixel view.</p></ol>
512
513 <h5>destination</h5>
514 <ol><p>the destination pixel view.</p></ol>
515
516 <h5>transfer</h5>
517 <ol><p>the transfer callback method.</p></ol>
518
519 <h5>context</h5>
520 <ol><p>the user defined context.</p></ol>
521
522  </div>
523 <h2><a href="http://www.imagemagick.org/api/MagickWand/pixel-view
524 _8c.html" target="source" name="UpdatePixelViewIterator">UpdatePixelViewIterator</a></h2>
525 <div class="doc-section">
526
527 <p>UpdatePixelViewIterator() 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>
528
529 <p>Use this pragma:</p>
530
531 <pre class="text">
532       #pragma omp critical
533 </pre>
534
535 <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>
536
537 <p>The format of the UpdatePixelViewIterator method is:</p>
538
539 <pre class="code">
540   MagickBooleanType UpdatePixelViewIterator(PixelView *source,
541     UpdatePixelViewMethod update,void *context)
542 </pre>
543
544 <p>A description of each parameter follows:</p></ol>
545
546 <h5>source</h5>
547 <ol><p>the source pixel view.</p></ol>
548
549 <h5>update</h5>
550 <ol><p>the update callback method.</p></ol>
551
552 <h5>context</h5>
553 <ol><p>the user defined context.</p></ol>
554
555  </div>
556 \r
557 </div>\r
558 \r
559 <div id="linkbar">\r
560  <!--    <span id="linkbar-west">&nbsp;</span>  -->\r
561     <span id="linkbar-center">\r
562       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;\r
563       <a href="../../www/mailing-list.html">Mailing Lists</a> &bull;\r
564     <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>\r
565     </span>\r
566     <span id="linkbar-east">&nbsp;</span>\r
567   </div>\r
568   <div class="footer">\r
569     <span id="footer-west">&copy; 1999-2009 ImageMagick Studio LLC</span>\r
570     <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
571   </div>\r
572   <div style="clear: both; margin: 0; width: 100%; "></div>\r
573 </body>\r
574 </html>\r