1 2 3 4 5 <!DOCTYPE html> 6 <html lang="en"> 7 <head> 8 <title>ImageMagick: MagickWand, C API for ImageMagick: Wand View Methods</title> 9 <meta charset="utf-8" /> 10 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 11 <meta name="viewport" content="width=device-width, initial-scale=1" /> 12 <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 13 <meta name="application-name" content="ImageMagick"/> 14 <meta name="description" content="ImageMagick is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bzier curves."/> 15 <meta name="application-url" content="http://www.imagemagick.org"/> 16 <meta name="generator" content="PHP"/> 17 <meta name="keywords" content="magickwc, api, for, imagemagick:, wview, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert"/> 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-2016 ImageMagick Studio LLC"/> 25 <meta name="distribution" content="Global"/> 26 <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/> 27 <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" /> 28 <link rel="icon" href="../images/wand.png"/> 29 <link rel="shortcut icon" href="../images/wand.ico"/> 30 <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:900,400,400italic,700,700italic,300,300italic|Open+Sans:300italic,400italic,700italic,300,400,600,700"> 31 <link rel="stylesheet" href="../css/magick.html"/> 32 </head> 33 <body> 34 <div class="main"> 35 <div class="magick-masthead"> 36 <div class="container"> 37 <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" 38 style="display:block" 39 data-ad-client="ca-pub-3129977114552745" 40 data-ad-slot="6345125851" 41 data-ad-format="auto"></ins> 42 <script> 43 (adsbygoogle = window.adsbygoogle || []).push({}); 44 </script> 45 <nav class="magick-nav"> 46 <a class="magick-nav-item " href="../index.html">Home</a> 47 <a class="magick-nav-item " href="../binary-releases.html">Download</a> 48 <a class="magick-nav-item " href="../command-line-tools.html">Tools</a> 49 <a class="magick-nav-item " href="../command-line-processing.html">Command-line</a> 50 <a class="magick-nav-item " href="../resources.html">Resources</a> 51 <a class="magick-nav-item " href="api.html">Develop</a> 52 <a class="magick-nav-item " href="http://www.imagemagick.org/script/search.php">Search</a> 53 <a class="magick-nav-item pull-right" href="https://www.imagemagick.org/discourse-server/">Community</a> 54 </nav> 55 </div> 56 </div> 57 <div class="container"> 58 <div class="magick-header"> 59 <p class="text-center"><a href="wand-view.html#CloneWandView">CloneWandView</a> • <a href="wand-view.html#DestroyWandView">DestroyWandView</a> • <a href="wand-view.html#DuplexTransferWandViewIterator">DuplexTransferWandViewIterator</a> • <a href="wand-view.html#GetWandViewException">GetWandViewException</a> • <a href="wand-view.html#GetWandViewExtent">GetWandViewExtent</a> • <a href="wand-view.html#GetWandViewIterator">GetWandViewIterator</a> • <a href="wand-view.html#GetWandViewPixels">GetWandViewPixels</a> • <a href="wand-view.html#GetWandViewWand">GetWandViewWand</a> • <a href="wand-view.html#IsWandView">IsWandView</a> • <a href="wand-view.html#NewWandView">NewWandView</a> • <a href="wand-view.html#NewWandViewExtent">NewWandViewExtent</a> • <a href="wand-view.html#SetWandViewDescription">SetWandViewDescription</a> • <a href="wand-view.html#SetWandViewIterator">SetWandViewIterator</a> • <a href="wand-view.html#TransferWandViewIterator">TransferWandViewIterator</a> • <a href="wand-view.html#UpdateWandViewIterator">UpdateWandViewIterator</a></p> 60 61 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="CloneWandView">CloneWandView</a></h2> 62 63 <p>CloneWandView() makes a copy of the specified wand view.</p> 64 65 <p>The format of the CloneWandView method is:</p> 66 67 <pre class="text"> 68 WandView *CloneWandView(const WandView *wand_view) 69 </pre> 70 71 <p>A description of each parameter follows:</p> 72 73 <dd> 74 </dd> 75 76 <dd> </dd> 77 <dl class="dl-horizontal"> 78 <dt>wand_view</dt> 79 <dd>the wand view. </dd> 80 81 <dd> </dd> 82 </dl> 83 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="DestroyWandView">DestroyWandView</a></h2> 84 85 <p>DestroyWandView() deallocates memory associated with a wand view.</p> 86 87 <p>The format of the DestroyWandView method is:</p> 88 89 <pre class="text"> 90 WandView *DestroyWandView(WandView *wand_view) 91 </pre> 92 93 <p>A description of each parameter follows:</p> 94 95 <dd> 96 </dd> 97 98 <dd> </dd> 99 <dl class="dl-horizontal"> 100 <dt>wand_view</dt> 101 <dd>the wand view. </dd> 102 103 <dd> </dd> 104 </dl> 105 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="DuplexTransferWandViewIterator">DuplexTransferWandViewIterator</a></h2> 106 107 <p>DuplexTransferWandViewIterator() iterates over three wand views in parallel and calls your transfer method for each scanline of the view. The source and duplex pixel extent 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 wand view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p> 108 109 <p>The callback signature is:</p> 110 111 <pre class="text"> 112 MagickBooleanType DuplexTransferImageViewMethod(const WandView *source, 113 const WandView *duplex,WandView *destination,const ssize_t y, 114 const int thread_id,void *context) 115 </pre> 116 117 <p>Use this pragma if the view is not single threaded:</p> 118 119 <pre class="text"> 120 #pragma omp critical 121 </pre> 122 123 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p> 124 125 <p>The format of the DuplexTransferWandViewIterator method is:</p> 126 127 <pre class="text"> 128 MagickBooleanType DuplexTransferWandViewIterator(WandView *source, 129 WandView *duplex,WandView *destination, 130 DuplexTransferWandViewMethod transfer,void *context) 131 </pre> 132 133 <p>A description of each parameter follows:</p> 134 135 <dd> 136 </dd> 137 138 <dd> </dd> 139 <dl class="dl-horizontal"> 140 <dt>source</dt> 141 <dd>the source wand view. </dd> 142 143 <dd> </dd> 144 <dt>duplex</dt> 145 <dd>the duplex wand view. </dd> 146 147 <dd> </dd> 148 <dt>destination</dt> 149 <dd>the destination wand view. </dd> 150 151 <dd> </dd> 152 <dt>transfer</dt> 153 <dd>the transfer callback method. </dd> 154 155 <dd> </dd> 156 <dt>context</dt> 157 <dd>the user defined context. </dd> 158 159 <dd> </dd> 160 </dl> 161 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewException">GetWandViewException</a></h2> 162 163 <p>GetWandViewException() returns the severity, reason, and description of any error that occurs when utilizing a wand view.</p> 164 165 <p>The format of the GetWandViewException method is:</p> 166 167 <pre class="text"> 168 char *GetWandViewException(const WandView *wand_view, 169 ExceptionType *severity) 170 </pre> 171 172 <p>A description of each parameter follows:</p> 173 174 <dd> 175 </dd> 176 177 <dd> </dd> 178 <dl class="dl-horizontal"> 179 <dt>wand_view</dt> 180 <dd>the pixel wand_view. </dd> 181 182 <dd> </dd> 183 <dt>severity</dt> 184 <dd>the severity of the error is returned here. </dd> 185 186 <dd> </dd> 187 </dl> 188 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewExtent">GetWandViewExtent</a></h2> 189 190 <p>GetWandViewExtent() returns the wand view extent.</p> 191 192 <p>The format of the GetWandViewExtent method is:</p> 193 194 <pre class="text"> 195 RectangleInfo GetWandViewExtent(const WandView *wand_view) 196 </pre> 197 198 <p>A description of each parameter follows:</p> 199 200 <dd> 201 </dd> 202 203 <dd> </dd> 204 <dl class="dl-horizontal"> 205 <dt>wand_view</dt> 206 <dd>the wand view. </dd> 207 208 <dd> </dd> 209 </dl> 210 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewIterator">GetWandViewIterator</a></h2> 211 212 <p>GetWandViewIterator() iterates over the wand view in parallel and calls your get method for each scanline of the view. The pixel extent 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> 213 214 <p>The callback signature is:</p> 215 216 <pre class="text"> 217 MagickBooleanType GetImageViewMethod(const WandView *source, 218 const ssize_t y,const int thread_id,void *context) 219 </pre> 220 221 <p>Use this pragma if the view is not single threaded:</p> 222 223 <pre class="text"> 224 #pragma omp critical 225 </pre> 226 227 <p>to define a section of code in your callback get method that must be executed by a single thread at a time.</p> 228 229 <p>The format of the GetWandViewIterator method is:</p> 230 231 <pre class="text"> 232 MagickBooleanType GetWandViewIterator(WandView *source, 233 GetWandViewMethod get,void *context) 234 </pre> 235 236 <p>A description of each parameter follows:</p> 237 238 <dd> 239 </dd> 240 241 <dd> </dd> 242 <dl class="dl-horizontal"> 243 <dt>source</dt> 244 <dd>the source wand view. </dd> 245 246 <dd> </dd> 247 <dt>get</dt> 248 <dd>the get callback method. </dd> 249 250 <dd> </dd> 251 <dt>context</dt> 252 <dd>the user defined context. </dd> 253 254 <dd> </dd> 255 </dl> 256 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewPixels">GetWandViewPixels</a></h2> 257 258 <p>GetWandViewPixels() returns the wand view pixel_wands.</p> 259 260 <p>The format of the GetWandViewPixels method is:</p> 261 262 <pre class="text"> 263 PixelWand *GetWandViewPixels(const WandView *wand_view) 264 </pre> 265 266 <p>A description of each parameter follows:</p> 267 268 <dd> 269 </dd> 270 271 <dd> </dd> 272 <dl class="dl-horizontal"> 273 <dt>wand_view</dt> 274 <dd>the wand view. </dd> 275 276 <dd> </dd> 277 </dl> 278 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="GetWandViewWand">GetWandViewWand</a></h2> 279 280 <p>GetWandViewWand() returns the magick wand associated with the wand view.</p> 281 282 <p>The format of the GetWandViewWand method is:</p> 283 284 <pre class="text"> 285 MagickWand *GetWandViewWand(const WandView *wand_view) 286 </pre> 287 288 <p>A description of each parameter follows:</p> 289 290 <dd> 291 </dd> 292 293 <dd> </dd> 294 <dl class="dl-horizontal"> 295 <dt>wand_view</dt> 296 <dd>the wand view. </dd> 297 298 <dd> </dd> 299 </dl> 300 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="IsWandView">IsWandView</a></h2> 301 302 <p>IsWandView() returns MagickTrue if the the parameter is verified as a wand view object.</p> 303 304 <p>The format of the IsWandView method is:</p> 305 306 <pre class="text"> 307 MagickBooleanType IsWandView(const WandView *wand_view) 308 </pre> 309 310 <p>A description of each parameter follows:</p> 311 312 <dd> 313 </dd> 314 315 <dd> </dd> 316 <dl class="dl-horizontal"> 317 <dt>wand_view</dt> 318 <dd>the wand view. </dd> 319 320 <dd> </dd> 321 </dl> 322 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="NewWandView">NewWandView</a></h2> 323 324 <p>NewWandView() returns a wand view required for all other methods in the Wand View API.</p> 325 326 <p>The format of the NewWandView method is:</p> 327 328 <pre class="text"> 329 WandView *NewWandView(MagickWand *wand) 330 </pre> 331 332 <p>A description of each parameter follows:</p> 333 334 <dd> 335 </dd> 336 337 <dd> </dd> 338 <dl class="dl-horizontal"> 339 <dt>wand</dt> 340 <dd>the wand. </dd> 341 342 <dd> </dd> 343 </dl> 344 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="NewWandViewExtent">NewWandViewExtent</a></h2> 345 346 <p>NewWandViewExtent() returns a wand view required for all other methods in the Wand View API.</p> 347 348 <p>The format of the NewWandViewExtent method is:</p> 349 350 <pre class="text"> 351 WandView *NewWandViewExtent(MagickWand *wand,const ssize_t x, 352 const ssize_t y,const size_t width,const size_t height) 353 </pre> 354 355 <p>A description of each parameter follows:</p> 356 357 <dd> 358 </dd> 359 360 <dd> </dd> 361 <dl class="dl-horizontal"> 362 <dt>wand</dt> 363 <dd>the magick wand. </dd> 364 365 <dd> </dd> 366 <dt>x,y,columns,rows</dt> 367 <dd> These values define the perimeter of a extent of pixel_wands view. </dd> 368 369 <dd> </dd> 370 </dl> 371 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewDescription">SetWandViewDescription</a></h2> 372 373 <p>SetWandViewDescription() associates a description with an image view.</p> 374 375 <p>The format of the SetWandViewDescription method is:</p> 376 377 <pre class="text"> 378 void SetWandViewDescription(WandView *image_view,const char *description) 379 </pre> 380 381 <p>A description of each parameter follows:</p> 382 383 <dd> 384 </dd> 385 386 <dd> </dd> 387 <dl class="dl-horizontal"> 388 <dt>wand_view</dt> 389 <dd>the wand view. </dd> 390 391 <dd> </dd> 392 <dt>description</dt> 393 <dd>the wand view description. </dd> 394 395 <dd> </dd> 396 </dl> 397 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="SetWandViewIterator">SetWandViewIterator</a></h2> 398 399 <p>SetWandViewIterator() iterates over the wand view in parallel and calls your set method for each scanline of the view. The pixel extent 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> 400 401 <p>The callback signature is:</p> 402 403 <pre class="text"> 404 MagickBooleanType SetImageViewMethod(ImageView *destination, 405 const ssize_t y,const int thread_id,void *context) 406 </pre> 407 408 <p>Use this pragma if the view is not single threaded:</p> 409 410 <pre class="text"> 411 #pragma omp critical 412 </pre> 413 414 <p>to define a section of code in your callback set method that must be executed by a single thread at a time.</p> 415 416 <p>The format of the SetWandViewIterator method is:</p> 417 418 <pre class="text"> 419 MagickBooleanType SetWandViewIterator(WandView *destination, 420 SetWandViewMethod set,void *context) 421 </pre> 422 423 <p>A description of each parameter follows:</p> 424 425 <dd> 426 </dd> 427 428 <dd> </dd> 429 <dl class="dl-horizontal"> 430 <dt>destination</dt> 431 <dd>the wand view. </dd> 432 433 <dd> </dd> 434 <dt>set</dt> 435 <dd>the set callback method. </dd> 436 437 <dd> </dd> 438 <dt>context</dt> 439 <dd>the user defined context. </dd> 440 441 <dd> </dd> 442 </dl> 443 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="TransferWandViewIterator">TransferWandViewIterator</a></h2> 444 445 <p>TransferWandViewIterator() iterates over two wand views in parallel and calls your transfer method for each scanline of the view. The source pixel extent 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 wand view is confined to the image canvas-- that is no negative offsets or widths or heights that exceed the image dimension are permitted.</p> 446 447 <p>The callback signature is:</p> 448 449 <pre class="text"> 450 MagickBooleanType TransferImageViewMethod(const WandView *source, 451 WandView *destination,const ssize_t y,const int thread_id, 452 void *context) 453 </pre> 454 455 <p>Use this pragma if the view is not single threaded:</p> 456 457 <pre class="text"> 458 #pragma omp critical 459 </pre> 460 461 <p>to define a section of code in your callback transfer method that must be executed by a single thread at a time.</p> 462 463 <p>The format of the TransferWandViewIterator method is:</p> 464 465 <pre class="text"> 466 MagickBooleanType TransferWandViewIterator(WandView *source, 467 WandView *destination,TransferWandViewMethod transfer,void *context) 468 </pre> 469 470 <p>A description of each parameter follows:</p> 471 472 <dd> 473 </dd> 474 475 <dd> </dd> 476 <dl class="dl-horizontal"> 477 <dt>source</dt> 478 <dd>the source wand view. </dd> 479 480 <dd> </dd> 481 <dt>destination</dt> 482 <dd>the destination wand view. </dd> 483 484 <dd> </dd> 485 <dt>transfer</dt> 486 <dd>the transfer callback method. </dd> 487 488 <dd> </dd> 489 <dt>context</dt> 490 <dd>the user defined context. </dd> 491 492 <dd> </dd> 493 </dl> 494 <h2><a href="http://www.imagemagick.org/api/MagickWand/wand-view_8c.html" id="UpdateWandViewIterator">UpdateWandViewIterator</a></h2> 495 496 <p>UpdateWandViewIterator() iterates over the wand view in parallel and calls your update method for each scanline of the view. The pixel extent 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> 497 498 <p>The callback signature is:</p> 499 500 <pre class="text"> 501 MagickBooleanType UpdateImageViewMethod(WandView *source,const ssize_t y, 502 const int thread_id,void *context) 503 </pre> 504 505 <p>Use this pragma if the view is not single threaded:</p> 506 507 <pre class="text"> 508 #pragma omp critical 509 </pre> 510 511 <p>to define a section of code in your callback update method that must be executed by a single thread at a time.</p> 512 513 <p>The format of the UpdateWandViewIterator method is:</p> 514 515 <pre class="text"> 516 MagickBooleanType UpdateWandViewIterator(WandView *source, 517 UpdateWandViewMethod update,void *context) 518 </pre> 519 520 <p>A description of each parameter follows:</p> 521 522 <dd> 523 </dd> 524 525 <dd> </dd> 526 <dl class="dl-horizontal"> 527 <dt>source</dt> 528 <dd>the source wand view. </dd> 529 530 <dd> </dd> 531 <dt>update</dt> 532 <dd>the update callback method. </dd> 533 534 <dd> </dd> 535 <dt>context</dt> 536 <dd>the user defined context. </dd> 537 538 <dd> </dd> 539 </dl> 540 </div> 541 <footer class="magick-footer"> 542 <p><a href="../support.html">Donate</a> 543 <a href="../sitemap.html">Sitemap</a> 544 <a href="../links.html">Related</a> 545 <a href="../architecture.html">Architecture</a> 546 </p> 547 <p><a href="wand-view.html#">Back to top</a> 548 <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x89AB63D48277377A">Public Key</a> 549 <a href="http://www.imagemagick.org/script/contact.php">Contact Us</a></p> 550 <p><small> 1999-2016 ImageMagick Studio LLC</small></p> 551 </footer> 552 </div><!-- /.container --> 553 554 <script src="https://localhost/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 555 <script src="../js/magick.html"></script> 556 </div> 557 </body> 558 </html> 559