1/* 2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3% % 4% % 5% % 6% PPPP IIIII X X EEEEE L % 7% P P I X X E L % 8% PPPP I X EEE L % 9% P I X X E L % 10% P IIIII X X EEEEE LLLLL % 11% % 12% W W AAA N N DDDD % 13% W W A A NN N D D % 14% W W W AAAAA N N N D D % 15% WW WW A A N NN D D % 16% W W A A N N DDDD % 17% % 18% % 19% MagickWand Image Pixel Wand Methods % 20% % 21% Software Design % 22% Cristy % 23% March 2003 % 24% % 25% % 26% Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization % 27% dedicated to making software imaging solutions freely available. % 28% % 29% You may not use this file except in compliance with the License. You may % 30% obtain a copy of the License at % 31% % 32% http://www.imagemagick.org/script/license.php % 33% % 34% Unless required by applicable law or agreed to in writing, software % 35% distributed under the License is distributed on an "AS IS" BASIS, % 36% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % 37% See the License for the specific language governing permissions and % 38% limitations under the License. % 39% % 40%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 41% 42% 43% 44*/ 45 46/* 47 Include declarations. 48*/ 49#include "MagickWand/studio.h" 50#include "MagickWand/MagickWand.h" 51#include "MagickWand/magick-wand-private.h" 52#include "MagickWand/pixel-wand-private.h" 53#include "MagickWand/wand.h" 54 55/* 56 Define declarations. 57*/ 58#define PixelWandId "PixelWand" 59 60/* 61 Typedef declarations. 62*/ 63struct _PixelWand 64{ 65 size_t 66 id; 67 68 char 69 name[MagickPathExtent]; 70 71 ExceptionInfo 72 *exception; 73 74 PixelInfo 75 pixel; 76 77 size_t 78 count; 79 80 MagickBooleanType 81 debug; 82 83 size_t 84 signature; 85}; 86 87/* 88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 89% % 90% % 91% % 92% C l e a r P i x e l W a n d % 93% % 94% % 95% % 96%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 97% 98% ClearPixelWand() clears resources associated with the wand. 99% 100% The format of the ClearPixelWand method is: 101% 102% void ClearPixelWand(PixelWand *wand) 103% 104% A description of each parameter follows: 105% 106% o wand: the pixel wand. 107% 108*/ 109WandExport void ClearPixelWand(PixelWand *wand) 110{ 111 assert(wand != (PixelWand *) NULL); 112 assert(wand->signature == MagickWandSignature); 113 if (wand->debug != MagickFalse) 114 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 115 ClearMagickException(wand->exception); 116 wand->pixel.colorspace=sRGBColorspace; 117 wand->debug=IsEventLogging(); 118} 119 120/* 121%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 122% % 123% % 124% % 125% C l o n e P i x e l W a n d % 126% % 127% % 128% % 129%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 130% 131% ClonePixelWand() makes an exact copy of the specified wand. 132% 133% The format of the ClonePixelWand method is: 134% 135% PixelWand *ClonePixelWand(const PixelWand *wand) 136% 137% A description of each parameter follows: 138% 139% o wand: the magick wand. 140% 141*/ 142WandExport PixelWand *ClonePixelWand(const PixelWand *wand) 143{ 144 PixelWand 145 *clone_wand; 146 147 assert(wand != (PixelWand *) NULL); 148 assert(wand->signature == MagickWandSignature); 149 if (wand->debug != MagickFalse) 150 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 151 clone_wand=(PixelWand *) AcquireMagickMemory(sizeof(*clone_wand)); 152 if (clone_wand == (PixelWand *) NULL) 153 ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed", 154 wand->name); 155 (void) ResetMagickMemory(clone_wand,0,sizeof(*clone_wand)); 156 clone_wand->id=AcquireWandId(); 157 (void) FormatLocaleString(clone_wand->name,MagickPathExtent,"%s-%.20g", 158 PixelWandId,(double) clone_wand->id); 159 clone_wand->exception=AcquireExceptionInfo(); 160 InheritException(clone_wand->exception,wand->exception); 161 clone_wand->pixel=wand->pixel; 162 clone_wand->count=wand->count; 163 clone_wand->debug=IsEventLogging(); 164 if (clone_wand->debug != MagickFalse) 165 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",clone_wand->name); 166 clone_wand->signature=MagickWandSignature; 167 return(clone_wand); 168} 169 170/* 171%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 172% % 173% % 174% % 175% C l o n e P i x e l W a n d s % 176% % 177% % 178% % 179%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 180% 181% ClonePixelWands() makes an exact copy of the specified wands. 182% 183% The format of the ClonePixelWands method is: 184% 185% PixelWand **ClonePixelWands(const PixelWand **wands, 186% const size_t number_wands) 187% 188% A description of each parameter follows: 189% 190% o wands: the magick wands. 191% 192% o number_wands: the number of wands. 193% 194*/ 195WandExport PixelWand **ClonePixelWands(const PixelWand **wands, 196 const size_t number_wands) 197{ 198 register ssize_t 199 i; 200 201 PixelWand 202 **clone_wands; 203 204 clone_wands=(PixelWand **) AcquireQuantumMemory((size_t) number_wands, 205 sizeof(*clone_wands)); 206 if (clone_wands == (PixelWand **) NULL) 207 ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed", 208 GetExceptionMessage(errno)); 209 for (i=0; i < (ssize_t) number_wands; i++) 210 clone_wands[i]=ClonePixelWand(wands[i]); 211 return(clone_wands); 212} 213 214/* 215%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 216% % 217% % 218% % 219% D e s t r o y P i x e l W a n d % 220% % 221% % 222% % 223%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 224% 225% DestroyPixelWand() deallocates resources associated with a PixelWand. 226% 227% The format of the DestroyPixelWand method is: 228% 229% PixelWand *DestroyPixelWand(PixelWand *wand) 230% 231% A description of each parameter follows: 232% 233% o wand: the pixel wand. 234% 235*/ 236WandExport PixelWand *DestroyPixelWand(PixelWand *wand) 237{ 238 assert(wand != (PixelWand *) NULL); 239 assert(wand->signature == MagickWandSignature); 240 if (wand->debug != MagickFalse) 241 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 242 wand->exception=DestroyExceptionInfo(wand->exception); 243 wand->signature=(~MagickWandSignature); 244 RelinquishWandId(wand->id); 245 wand=(PixelWand *) RelinquishMagickMemory(wand); 246 return(wand); 247} 248 249/* 250%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 251% % 252% % 253% % 254% D e s t r o y P i x e l W a n d s % 255% % 256% % 257% % 258%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 259% 260% DestroyPixelWands() deallocates resources associated with an array of 261% pixel wands. 262% 263% The format of the DestroyPixelWands method is: 264% 265% PixelWand **DestroyPixelWands(PixelWand **wand, 266% const size_t number_wands) 267% 268% A description of each parameter follows: 269% 270% o wand: the pixel wand. 271% 272% o number_wands: the number of wands. 273% 274*/ 275WandExport PixelWand **DestroyPixelWands(PixelWand **wand, 276 const size_t number_wands) 277{ 278 register ssize_t 279 i; 280 281 assert(wand != (PixelWand **) NULL); 282 assert(*wand != (PixelWand *) NULL); 283 assert((*wand)->signature == MagickWandSignature); 284 if ((*wand)->debug != MagickFalse) 285 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",(*wand)->name); 286 for (i=(ssize_t) number_wands-1; i >= 0; i--) 287 wand[i]=DestroyPixelWand(wand[i]); 288 wand=(PixelWand **) RelinquishMagickMemory(wand); 289 return(wand); 290} 291 292/* 293%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 294% % 295% % 296% % 297% I s P i x e l W a n d S i m i l a r % 298% % 299% % 300% % 301%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 302% 303% IsPixelWandSimilar() returns MagickTrue if the distance between two 304% colors is less than the specified distance. 305% 306% The format of the IsPixelWandSimilar method is: 307% 308% MagickBooleanType IsPixelWandSimilar(PixelWand *p,PixelWand *q, 309% const double fuzz) 310% 311% A description of each parameter follows: 312% 313% o p: the pixel wand. 314% 315% o q: the pixel wand. 316% 317% o fuzz: any two colors that are less than or equal to this distance 318% squared are consider similar. 319% 320*/ 321WandExport MagickBooleanType IsPixelWandSimilar(PixelWand *p,PixelWand *q, 322 const double fuzz) 323{ 324 assert(p != (PixelWand *) NULL); 325 assert(p->signature == MagickWandSignature); 326 if (p->debug != MagickFalse) 327 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",p->name); 328 assert(q != (PixelWand *) NULL); 329 assert(q->signature == MagickWandSignature); 330 if (q->debug != MagickFalse) 331 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",q->name); 332 p->pixel.fuzz=fuzz; 333 q->pixel.fuzz=fuzz; 334 return(IsFuzzyEquivalencePixelInfo(&p->pixel,&q->pixel)); 335} 336 337/* 338%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 339% % 340% % 341% % 342% I s P i x e l W a n d % 343% % 344% % 345% % 346%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 347% 348% IsPixelWand() returns MagickTrue if the wand is verified as a pixel wand. 349% 350% The format of the IsPixelWand method is: 351% 352% MagickBooleanType IsPixelWand(const PixelWand *wand) 353% 354% A description of each parameter follows: 355% 356% o wand: the magick wand. 357% 358*/ 359WandExport MagickBooleanType IsPixelWand(const PixelWand *wand) 360{ 361 if (wand == (const PixelWand *) NULL) 362 return(MagickFalse); 363 if (wand->signature != MagickWandSignature) 364 return(MagickFalse); 365 if (LocaleNCompare(wand->name,PixelWandId,strlen(PixelWandId)) != 0) 366 return(MagickFalse); 367 return(MagickTrue); 368} 369 370/* 371%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 372% % 373% % 374% % 375% N e w P i x e l W a n d % 376% % 377% % 378% % 379%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 380% 381% NewPixelWand() returns a new pixel wand. 382% 383% The format of the NewPixelWand method is: 384% 385% PixelWand *NewPixelWand(void) 386% 387*/ 388WandExport PixelWand *NewPixelWand(void) 389{ 390 const char 391 *quantum; 392 393 PixelWand 394 *wand; 395 396 size_t 397 depth; 398 399 depth=MAGICKCORE_QUANTUM_DEPTH; 400 quantum=GetMagickQuantumDepth(&depth); 401 if (depth != MAGICKCORE_QUANTUM_DEPTH) 402 ThrowWandFatalException(WandError,"QuantumDepthMismatch",quantum); 403 wand=(PixelWand *) AcquireMagickMemory(sizeof(*wand)); 404 if (wand == (PixelWand *) NULL) 405 ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed", 406 GetExceptionMessage(errno)); 407 (void) ResetMagickMemory(wand,0,sizeof(*wand)); 408 wand->id=AcquireWandId(); 409 (void) FormatLocaleString(wand->name,MagickPathExtent,"%s-%.20g",PixelWandId, 410 (double) wand->id); 411 wand->exception=AcquireExceptionInfo(); 412 GetPixelInfo((Image *) NULL,&wand->pixel); 413 wand->debug=IsEventLogging(); 414 if (wand->debug != MagickFalse) 415 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 416 wand->signature=MagickWandSignature; 417 return(wand); 418} 419 420/* 421%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 422% % 423% % 424% % 425% N e w P i x e l W a n d s % 426% % 427% % 428% % 429%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 430% 431% NewPixelWands() returns an array of pixel wands. 432% 433% The format of the NewPixelWands method is: 434% 435% PixelWand **NewPixelWands(const size_t number_wands) 436% 437% A description of each parameter follows: 438% 439% o number_wands: the number of wands. 440% 441*/ 442WandExport PixelWand **NewPixelWands(const size_t number_wands) 443{ 444 register ssize_t 445 i; 446 447 PixelWand 448 **wands; 449 450 wands=(PixelWand **) AcquireQuantumMemory((size_t) number_wands, 451 sizeof(*wands)); 452 if (wands == (PixelWand **) NULL) 453 ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed", 454 GetExceptionMessage(errno)); 455 for (i=0; i < (ssize_t) number_wands; i++) 456 wands[i]=NewPixelWand(); 457 return(wands); 458} 459 460/* 461%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 462% % 463% % 464% % 465% P i x e l C l e a r E x c e p t i o n % 466% % 467% % 468% % 469%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 470% 471% PixelClearException() clear any exceptions associated with the iterator. 472% 473% The format of the PixelClearException method is: 474% 475% MagickBooleanType PixelClearException(PixelWand *wand) 476% 477% A description of each parameter follows: 478% 479% o wand: the pixel wand. 480% 481*/ 482WandExport MagickBooleanType PixelClearException(PixelWand *wand) 483{ 484 assert(wand != (PixelWand *) NULL); 485 assert(wand->signature == MagickWandSignature); 486 if (wand->debug != MagickFalse) 487 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 488 ClearMagickException(wand->exception); 489 return(MagickTrue); 490} 491 492/* 493%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 494% % 495% % 496% % 497% P i x e l G e t A l p h a % 498% % 499% % 500% % 501%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 502% 503% PixelGetAlpha() returns the normalized alpha value of the pixel wand. 504% 505% The format of the PixelGetAlpha method is: 506% 507% double PixelGetAlpha(const PixelWand *wand) 508% 509% A description of each parameter follows: 510% 511% o wand: the pixel wand. 512% 513*/ 514WandExport double PixelGetAlpha(const PixelWand *wand) 515{ 516 assert(wand != (const PixelWand *) NULL); 517 assert(wand->signature == MagickWandSignature); 518 if (wand->debug != MagickFalse) 519 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 520 return((double) QuantumScale*wand->pixel.alpha); 521} 522 523/* 524%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 525% % 526% % 527% % 528% P i x e l G e t A l p h a Q u a n t u m % 529% % 530% % 531% % 532%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 533% 534% PixelGetAlphaQuantum() returns the alpha value of the pixel wand. 535% 536% The format of the PixelGetAlphaQuantum method is: 537% 538% Quantum PixelGetAlphaQuantum(const PixelWand *wand) 539% 540% A description of each parameter follows: 541% 542% o wand: the pixel wand. 543% 544*/ 545WandExport Quantum PixelGetAlphaQuantum(const PixelWand *wand) 546{ 547 assert(wand != (const PixelWand *) NULL); 548 assert(wand->signature == MagickWandSignature); 549 if (wand->debug != MagickFalse) 550 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 551 return(ClampToQuantum(wand->pixel.alpha)); 552} 553 554/* 555%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 556% % 557% % 558% % 559% P i x e l G e t B l a c k % 560% % 561% % 562% % 563%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 564% 565% PixelGetBlack() returns the normalized black color of the pixel wand. 566% 567% The format of the PixelGetBlack method is: 568% 569% double PixelGetBlack(const PixelWand *wand) 570% 571% A description of each parameter follows: 572% 573% o wand: the pixel wand. 574% 575*/ 576WandExport double PixelGetBlack(const PixelWand *wand) 577{ 578 assert(wand != (const PixelWand *) NULL); 579 assert(wand->signature == MagickWandSignature); 580 if (wand->debug != MagickFalse) 581 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 582 return((double) QuantumScale*wand->pixel.black); 583} 584 585/* 586%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 587% % 588% % 589% % 590% P i x e l G e t B l a c k Q u a n t u m % 591% % 592% % 593% % 594%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 595% 596% PixelGetBlackQuantum() returns the black color of the pixel wand. 597% 598% The format of the PixelGetBlackQuantum method is: 599% 600% Quantum PixelGetBlackQuantum(const PixelWand *wand) 601% 602% A description of each parameter follows: 603% 604% o wand: the pixel wand. 605% 606*/ 607WandExport Quantum PixelGetBlackQuantum(const PixelWand *wand) 608{ 609 assert(wand != (const PixelWand *) NULL); 610 assert(wand->signature == MagickWandSignature); 611 if (wand->debug != MagickFalse) 612 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 613 return(ClampToQuantum(wand->pixel.black)); 614} 615 616/* 617%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 618% % 619% % 620% % 621% P i x e l G e t B l u e % 622% % 623% % 624% % 625%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 626% 627% PixelGetBlue() returns the normalized blue color of the pixel wand. 628% 629% The format of the PixelGetBlue method is: 630% 631% double PixelGetBlue(const PixelWand *wand) 632% 633% A description of each parameter follows: 634% 635% o wand: the pixel wand. 636% 637*/ 638WandExport double PixelGetBlue(const PixelWand *wand) 639{ 640 assert(wand != (const PixelWand *) NULL); 641 assert(wand->signature == MagickWandSignature); 642 if (wand->debug != MagickFalse) 643 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 644 return((double) QuantumScale*wand->pixel.blue); 645} 646 647/* 648%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 649% % 650% % 651% % 652% P i x e l G e t B l u e Q u a n t u m % 653% % 654% % 655% % 656%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 657% 658% PixelGetBlueQuantum() returns the blue color of the pixel wand. 659% 660% The format of the PixelGetBlueQuantum method is: 661% 662% Quantum PixelGetBlueQuantum(const PixelWand *wand) 663% 664% A description of each parameter follows: 665% 666% o wand: the pixel wand. 667% 668*/ 669WandExport Quantum PixelGetBlueQuantum(const PixelWand *wand) 670{ 671 assert(wand != (const PixelWand *) NULL); 672 assert(wand->signature == MagickWandSignature); 673 if (wand->debug != MagickFalse) 674 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 675 return(ClampToQuantum(wand->pixel.blue)); 676} 677 678/* 679%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 680% % 681% % 682% % 683% P i x e l G e t C o l o r A s S t r i n g % 684% % 685% % 686% % 687%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 688% 689% PixelGetColorAsString() returnsd the color of the pixel wand as a string. 690% 691% The format of the PixelGetColorAsString method is: 692% 693% char *PixelGetColorAsString(PixelWand *wand) 694% 695% A description of each parameter follows: 696% 697% o wand: the pixel wand. 698% 699*/ 700WandExport char *PixelGetColorAsString(const PixelWand *wand) 701{ 702 char 703 *color; 704 705 PixelInfo 706 pixel; 707 708 assert(wand != (const PixelWand *) NULL); 709 assert(wand->signature == MagickWandSignature); 710 if (wand->debug != MagickFalse) 711 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 712 pixel=wand->pixel; 713 color=AcquireString((const char *) NULL); 714 GetColorTuple(&pixel,MagickFalse,color); 715 return(color); 716} 717 718/* 719%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 720% % 721% % 722% % 723% P i x e l G e t C o l o r A s N o r m a l i z e d S t r i n g % 724% % 725% % 726% % 727%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 728% 729% PixelGetColorAsNormalizedString() returns the normalized color of the pixel 730% wand as a string. 731% 732% The format of the PixelGetColorAsNormalizedString method is: 733% 734% char *PixelGetColorAsNormalizedString(PixelWand *wand) 735% 736% A description of each parameter follows: 737% 738% o wand: the pixel wand. 739% 740*/ 741WandExport char *PixelGetColorAsNormalizedString(const PixelWand *wand) 742{ 743 char 744 color[2*MagickPathExtent]; 745 746 assert(wand != (const PixelWand *) NULL); 747 assert(wand->signature == MagickWandSignature); 748 if (wand->debug != MagickFalse) 749 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 750 (void) FormatLocaleString(color,MagickPathExtent,"%g,%g,%g",(double) 751 (QuantumScale*wand->pixel.red),(double) (QuantumScale*wand->pixel.green), 752 (double) (QuantumScale*wand->pixel.blue)); 753 if (wand->pixel.colorspace == CMYKColorspace) 754 (void) FormatLocaleString(color+strlen(color),MagickPathExtent,",%g", 755 (double) (QuantumScale*wand->pixel.black)); 756 if (wand->pixel.alpha_trait != UndefinedPixelTrait) 757 (void) FormatLocaleString(color+strlen(color),MagickPathExtent,",%g", 758 (double) (QuantumScale*wand->pixel.alpha)); 759 return(ConstantString(color)); 760} 761 762/* 763%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 764% % 765% % 766% % 767% P i x e l G e t C o l o r C o u n t % 768% % 769% % 770% % 771%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 772% 773% PixelGetColorCount() returns the color count associated with this color. 774% 775% The format of the PixelGetColorCount method is: 776% 777% size_t PixelGetColorCount(const PixelWand *wand) 778% 779% A description of each parameter follows: 780% 781% o wand: the pixel wand. 782% 783*/ 784WandExport size_t PixelGetColorCount(const PixelWand *wand) 785{ 786 assert(wand != (const PixelWand *) NULL); 787 assert(wand->signature == MagickWandSignature); 788 if (wand->debug != MagickFalse) 789 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 790 return(wand->count); 791} 792 793/* 794%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 795% % 796% % 797% % 798% P i x e l G e t C y a n % 799% % 800% % 801% % 802%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 803% 804% PixelGetCyan() returns the normalized cyan color of the pixel wand. 805% 806% The format of the PixelGetCyan method is: 807% 808% double PixelGetCyan(const PixelWand *wand) 809% 810% A description of each parameter follows: 811% 812% o wand: the pixel wand. 813% 814*/ 815WandExport double PixelGetCyan(const PixelWand *wand) 816{ 817 assert(wand != (const PixelWand *) NULL); 818 assert(wand->signature == MagickWandSignature); 819 if (wand->debug != MagickFalse) 820 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 821 return((double) QuantumScale*wand->pixel.red); 822} 823 824/* 825%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 826% % 827% % 828% % 829% P i x e l G e t C y a n Q u a n t u m % 830% % 831% % 832% % 833%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 834% 835% PixelGetCyanQuantum() returns the cyan color of the pixel wand. 836% 837% The format of the PixelGetCyanQuantum method is: 838% 839% Quantum PixelGetCyanQuantum(const PixelWand *wand) 840% 841% A description of each parameter follows: 842% 843% o wand: the pixel wand. 844% 845*/ 846WandExport Quantum PixelGetCyanQuantum(const PixelWand *wand) 847{ 848 assert(wand != (const PixelWand *) NULL); 849 assert(wand->signature == MagickWandSignature); 850 if (wand->debug != MagickFalse) 851 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 852 return(ClampToQuantum(wand->pixel.red)); 853} 854 855/* 856%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 857% % 858% % 859% % 860% P i x e l G e t E x c e p t i o n % 861% % 862% % 863% % 864%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 865% 866% PixelGetException() returns the severity, reason, and description of any 867% error that occurs when using other methods in this API. 868% 869% The format of the PixelGetException method is: 870% 871% char *PixelGetException(const PixelWand *wand,ExceptionType *severity) 872% 873% A description of each parameter follows: 874% 875% o wand: the pixel wand. 876% 877% o severity: the severity of the error is returned here. 878% 879*/ 880WandExport char *PixelGetException(const PixelWand *wand, 881 ExceptionType *severity) 882{ 883 char 884 *description; 885 886 assert(wand != (const PixelWand *) NULL); 887 assert(wand->signature == MagickWandSignature); 888 if (wand->debug != MagickFalse) 889 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 890 assert(severity != (ExceptionType *) NULL); 891 *severity=wand->exception->severity; 892 description=(char *) AcquireQuantumMemory(2UL*MagickPathExtent, 893 sizeof(*description)); 894 if (description == (char *) NULL) 895 ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed", 896 wand->name); 897 *description='\0'; 898 if (wand->exception->reason != (char *) NULL) 899 (void) CopyMagickString(description,GetLocaleExceptionMessage( 900 wand->exception->severity,wand->exception->reason),MagickPathExtent); 901 if (wand->exception->description != (char *) NULL) 902 { 903 (void) ConcatenateMagickString(description," (",MagickPathExtent); 904 (void) ConcatenateMagickString(description,GetLocaleExceptionMessage( 905 wand->exception->severity,wand->exception->description), 906 MagickPathExtent); 907 (void) ConcatenateMagickString(description,")",MagickPathExtent); 908 } 909 return(description); 910} 911 912/* 913%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 914% % 915% % 916% % 917% P i x e l G e t E x c e p t i o n T y p e % 918% % 919% % 920% % 921%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 922% 923% PixelGetExceptionType() the exception type associated with the wand. If 924% no exception has occurred, UndefinedExceptionType is returned. 925% 926% The format of the PixelGetExceptionType method is: 927% 928% ExceptionType PixelGetExceptionType(const PixelWand *wand) 929% 930% A description of each parameter follows: 931% 932% o wand: the magick wand. 933% 934*/ 935WandExport ExceptionType PixelGetExceptionType(const PixelWand *wand) 936{ 937 assert(wand != (const PixelWand *) NULL); 938 assert(wand->signature == MagickWandSignature); 939 if (wand->debug != MagickFalse) 940 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 941 return(wand->exception->severity); 942} 943 944/* 945%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 946% % 947% % 948% % 949% P i x e l G e t F u z z % 950% % 951% % 952% % 953%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 954% 955% PixelGetFuzz() returns the normalized fuzz value of the pixel wand. 956% 957% The format of the PixelGetFuzz method is: 958% 959% double PixelGetFuzz(const PixelWand *wand) 960% 961% A description of each parameter follows: 962% 963% o wand: the pixel wand. 964% 965*/ 966WandExport double PixelGetFuzz(const PixelWand *wand) 967{ 968 assert(wand != (const PixelWand *) NULL); 969 assert(wand->signature == MagickWandSignature); 970 if (wand->debug != MagickFalse) 971 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 972 return((double) wand->pixel.fuzz); 973} 974 975/* 976%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 977% % 978% % 979% % 980% P i x e l G e t G r e e n % 981% % 982% % 983% % 984%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 985% 986% PixelGetGreen() returns the normalized green color of the pixel wand. 987% 988% The format of the PixelGetGreen method is: 989% 990% double PixelGetGreen(const PixelWand *wand) 991% 992% A description of each parameter follows: 993% 994% o wand: the pixel wand. 995% 996*/ 997WandExport double PixelGetGreen(const PixelWand *wand) 998{ 999 assert(wand != (const PixelWand *) NULL); 1000 assert(wand->signature == MagickWandSignature); 1001 if (wand->debug != MagickFalse) 1002 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1003 return((double) QuantumScale*wand->pixel.green); 1004} 1005 1006/* 1007%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1008% % 1009% % 1010% % 1011% P i x e l G e t G r e e n Q u a n t u m % 1012% % 1013% % 1014% % 1015%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1016% 1017% PixelGetGreenQuantum() returns the green color of the pixel wand. 1018% 1019% The format of the PixelGetGreenQuantum method is: 1020% 1021% Quantum PixelGetGreenQuantum(const PixelWand *wand) 1022% 1023% A description of each parameter follows: 1024% 1025% o wand: the pixel wand. 1026% 1027*/ 1028WandExport Quantum PixelGetGreenQuantum(const PixelWand *wand) 1029{ 1030 assert(wand != (const PixelWand *) NULL); 1031 assert(wand->signature == MagickWandSignature); 1032 if (wand->debug != MagickFalse) 1033 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1034 return(ClampToQuantum(wand->pixel.green)); 1035} 1036 1037/* 1038%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1039% % 1040% % 1041% % 1042% P i x e l G e t H S L % 1043% % 1044% % 1045% % 1046%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1047% 1048% PixelGetHSL() returns the normalized HSL color of the pixel wand. 1049% 1050% The format of the PixelGetHSL method is: 1051% 1052% void PixelGetHSL(const PixelWand *wand,double *hue,double *saturation, 1053% double *lightness) 1054% 1055% A description of each parameter follows: 1056% 1057% o wand: the pixel wand. 1058% 1059% o hue,saturation,lightness: Return the pixel hue, saturation, and 1060% brightness. 1061% 1062*/ 1063WandExport void PixelGetHSL(const PixelWand *wand,double *hue, 1064 double *saturation,double *lightness) 1065{ 1066 assert(wand != (const PixelWand *) NULL); 1067 assert(wand->signature == MagickWandSignature); 1068 if (wand->debug != MagickFalse) 1069 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1070 ConvertRGBToHSL((double) ClampToQuantum(wand->pixel.red),(double) 1071 ClampToQuantum(wand->pixel.green),(double) ClampToQuantum(wand->pixel.blue), 1072 hue,saturation,lightness); 1073} 1074 1075/* 1076%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1077% % 1078% % 1079% % 1080% P i x e l G e t I n d e x % 1081% % 1082% % 1083% % 1084%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1085% 1086% PixelGetIndex() returns the colormap index from the pixel wand. 1087% 1088% The format of the PixelGetIndex method is: 1089% 1090% Quantum PixelGetIndex(const PixelWand *wand) 1091% 1092% A description of each parameter follows: 1093% 1094% o wand: the pixel wand. 1095% 1096*/ 1097WandExport Quantum PixelGetIndex(const PixelWand *wand) 1098{ 1099 assert(wand != (const PixelWand *) NULL); 1100 assert(wand->signature == MagickWandSignature); 1101 if (wand->debug != MagickFalse) 1102 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1103 return((Quantum) wand->pixel.black); 1104} 1105 1106/* 1107%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1108% % 1109% % 1110% % 1111% P i x e l G e t M a g e n t a % 1112% % 1113% % 1114% % 1115%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1116% 1117% PixelGetMagenta() returns the normalized magenta color of the pixel wand. 1118% 1119% The format of the PixelGetMagenta method is: 1120% 1121% double PixelGetMagenta(const PixelWand *wand) 1122% 1123% A description of each parameter follows: 1124% 1125% o wand: the pixel wand. 1126% 1127*/ 1128WandExport double PixelGetMagenta(const PixelWand *wand) 1129{ 1130 assert(wand != (const PixelWand *) NULL); 1131 assert(wand->signature == MagickWandSignature); 1132 if (wand->debug != MagickFalse) 1133 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1134 return((double) QuantumScale*wand->pixel.green); 1135} 1136 1137/* 1138%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1139% % 1140% % 1141% % 1142% P i x e l G e t M a g e n t a Q u a n t u m % 1143% % 1144% % 1145% % 1146%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1147% 1148% PixelGetMagentaQuantum() returns the magenta color of the pixel wand. 1149% 1150% The format of the PixelGetMagentaQuantum method is: 1151% 1152% Quantum PixelGetMagentaQuantum(const PixelWand *wand) 1153% 1154% A description of each parameter follows: 1155% 1156% o wand: the pixel wand. 1157% 1158*/ 1159WandExport Quantum PixelGetMagentaQuantum(const PixelWand *wand) 1160{ 1161 assert(wand != (const PixelWand *) NULL); 1162 assert(wand->signature == MagickWandSignature); 1163 if (wand->debug != MagickFalse) 1164 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1165 return(ClampToQuantum(wand->pixel.green)); 1166} 1167 1168/* 1169%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1170% % 1171% % 1172% % 1173% P i x e l G e t M a g i c k C o l o r % 1174% % 1175% % 1176% % 1177%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1178% 1179% PixelGetMagickColor() gets the magick color of the pixel wand. 1180% 1181% The format of the PixelGetMagickColor method is: 1182% 1183% void PixelGetMagickColor(PixelWand *wand,PixelInfo *color) 1184% 1185% A description of each parameter follows: 1186% 1187% o wand: the pixel wand. 1188% 1189% o color: The pixel wand color is returned here. 1190% 1191*/ 1192WandExport void PixelGetMagickColor(const PixelWand *wand, 1193 PixelInfo *color) 1194{ 1195 assert(wand != (const PixelWand *) NULL); 1196 assert(wand->signature == MagickWandSignature); 1197 if (wand->debug != MagickFalse) 1198 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1199 assert(color != (PixelInfo *) NULL); 1200 *color=wand->pixel; 1201} 1202 1203/* 1204%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1205% % 1206% % 1207% % 1208% P i x e l G e t P i x e l % 1209% % 1210% % 1211% % 1212%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1213% 1214% PixelGetPixel() returns the pixel wand pixel. 1215% 1216% The format of the PixelGetPixel method is: 1217% 1218% PixelInfo PixelGetPixel(const PixelWand *wand) 1219% 1220% A description of each parameter follows: 1221% 1222% o wand: the pixel wand. 1223% 1224*/ 1225WandExport PixelInfo PixelGetPixel(const PixelWand *wand) 1226{ 1227 assert(wand != (const PixelWand *) NULL); 1228 assert(wand->signature == MagickWandSignature); 1229 if (wand->debug != MagickFalse) 1230 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1231 return(wand->pixel); 1232} 1233 1234/* 1235%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1236% % 1237% % 1238% % 1239% P i x e l G e t Q u a n t u m P a c k e t % 1240% % 1241% % 1242% % 1243%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1244% 1245% PixelGetQuantumPacket() gets the packet of the pixel wand as a PixelInfo. 1246% 1247% The format of the PixelGetQuantumPacket method is: 1248% 1249% void PixelGetQuantumPacket(PixelWand *wand,PixelInfo *packet) 1250% 1251% A description of each parameter follows: 1252% 1253% o wand: the pixel wand. 1254% 1255% o packet: The pixel wand packet is returned here. 1256% 1257*/ 1258WandExport void PixelGetQuantumPacket(const PixelWand *wand,PixelInfo *packet) 1259{ 1260 assert(wand != (const PixelWand *) NULL); 1261 assert(wand->signature == MagickWandSignature); 1262 if (wand->debug != MagickFalse) 1263 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1264 assert(packet != (PixelInfo *) NULL); 1265 packet->storage_class=wand->pixel.storage_class; 1266 packet->colorspace=wand->pixel.colorspace; 1267 packet->depth=wand->pixel.depth; 1268 packet->fuzz=wand->pixel.fuzz; 1269 packet->count=wand->pixel.count; 1270 packet->index=wand->pixel.index; 1271 packet->alpha=(double) ClampToQuantum(wand->pixel.alpha); 1272 packet->alpha_trait=wand->pixel.alpha_trait; 1273 if (wand->pixel.colorspace == CMYKColorspace) 1274 { 1275 packet->red=(double) ClampToQuantum(QuantumRange-(wand->pixel.red* 1276 (QuantumRange-wand->pixel.black)+wand->pixel.black)); 1277 packet->green=(double) ClampToQuantum(QuantumRange-(wand->pixel.green* 1278 (QuantumRange-wand->pixel.black)+wand->pixel.black)); 1279 packet->blue=(double) ClampToQuantum(QuantumRange-(wand->pixel.blue* 1280 (QuantumRange-wand->pixel.black)+wand->pixel.black)); 1281 packet->black=(double) ClampToQuantum(wand->pixel.black); 1282 return; 1283 } 1284 packet->red=(double) ClampToQuantum(wand->pixel.red); 1285 packet->green=(double) ClampToQuantum(wand->pixel.green); 1286 packet->blue=(double) ClampToQuantum(wand->pixel.blue); 1287} 1288 1289/* 1290%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1291% % 1292% % 1293% % 1294% P i x e l G e t Q u a n t u m P i x e l % 1295% % 1296% % 1297% % 1298%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1299% 1300% PixelGetQuantumPixel() gets the pixel of the pixel wand as a PixelInfo. 1301% 1302% The format of the PixelGetQuantumPixel method is: 1303% 1304% void PixelGetQuantumPixel(const Image *image,const PixelWand *wand, 1305% Quantum *pixel) 1306% 1307% A description of each parameter follows: 1308% 1309% o wand: the pixel wand. 1310% 1311% o pixel: The pixel wand pixel is returned here. 1312% 1313*/ 1314WandExport void PixelGetQuantumPixel(const Image *image,const PixelWand *wand, 1315 Quantum *pixel) 1316{ 1317 assert(wand != (const PixelWand *) NULL); 1318 assert(wand->signature == MagickWandSignature); 1319 if (wand->debug != MagickFalse) 1320 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1321 assert(pixel != (Quantum *) NULL); 1322 SetPixelAlpha(image,ClampToQuantum(wand->pixel.alpha),pixel); 1323 if (wand->pixel.colorspace == CMYKColorspace) 1324 { 1325 SetPixelRed(image,ClampToQuantum(QuantumRange- 1326 (wand->pixel.red*(QuantumRange-wand->pixel.black)+wand->pixel.black)), 1327 pixel); 1328 SetPixelGreen(image,ClampToQuantum(QuantumRange- 1329 (wand->pixel.green*(QuantumRange-wand->pixel.black)+wand->pixel.black)), 1330 pixel); 1331 SetPixelBlue(image,ClampToQuantum(QuantumRange- 1332 (wand->pixel.blue*(QuantumRange-wand->pixel.black)+wand->pixel.black)), 1333 pixel); 1334 SetPixelBlack(image,ClampToQuantum(wand->pixel.black),pixel); 1335 return; 1336 } 1337 SetPixelRed(image,ClampToQuantum(wand->pixel.red),pixel); 1338 SetPixelGreen(image,ClampToQuantum(wand->pixel.green),pixel); 1339 SetPixelBlue(image,ClampToQuantum(wand->pixel.blue),pixel); 1340} 1341 1342/* 1343%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1344% % 1345% % 1346% % 1347% P i x e l G e t R e d % 1348% % 1349% % 1350% % 1351%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1352% 1353% PixelGetRed() returns the normalized red color of the pixel wand. 1354% 1355% The format of the PixelGetRed method is: 1356% 1357% double PixelGetRed(const PixelWand *wand) 1358% 1359% A description of each parameter follows: 1360% 1361% o wand: the pixel wand. 1362% 1363*/ 1364WandExport double PixelGetRed(const PixelWand *wand) 1365{ 1366 assert(wand != (const PixelWand *) NULL); 1367 assert(wand->signature == MagickWandSignature); 1368 if (wand->debug != MagickFalse) 1369 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1370 return((double) QuantumScale*wand->pixel.red); 1371} 1372 1373/* 1374%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1375% % 1376% % 1377% % 1378% P i x e l G e t R e d Q u a n t u m % 1379% % 1380% % 1381% % 1382%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1383% 1384% PixelGetRedQuantum() returns the red color of the pixel wand. 1385% 1386% The format of the PixelGetRedQuantum method is: 1387% 1388% Quantum PixelGetRedQuantum(const PixelWand *wand) 1389% 1390% A description of each parameter follows: 1391% 1392% o wand: the pixel wand. 1393% 1394*/ 1395WandExport Quantum PixelGetRedQuantum(const PixelWand *wand) 1396{ 1397 assert(wand != (const PixelWand *) NULL); 1398 assert(wand->signature == MagickWandSignature); 1399 if (wand->debug != MagickFalse) 1400 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1401 return(ClampToQuantum(wand->pixel.red)); 1402} 1403 1404/* 1405%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1406% % 1407% % 1408% % 1409% P i x e l G e t Y e l l o w % 1410% % 1411% % 1412% % 1413%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1414% 1415% PixelGetYellow() returns the normalized yellow color of the pixel wand. 1416% 1417% The format of the PixelGetYellow method is: 1418% 1419% double PixelGetYellow(const PixelWand *wand) 1420% 1421% A description of each parameter follows: 1422% 1423% o wand: the pixel wand. 1424% 1425*/ 1426WandExport double PixelGetYellow(const PixelWand *wand) 1427{ 1428 assert(wand != (const PixelWand *) NULL); 1429 assert(wand->signature == MagickWandSignature); 1430 if (wand->debug != MagickFalse) 1431 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1432 return((double) QuantumScale*wand->pixel.blue); 1433} 1434 1435/* 1436%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1437% % 1438% % 1439% % 1440% P i x e l G e t Y e l l o w Q u a n t u m % 1441% % 1442% % 1443% % 1444%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1445% 1446% PixelGetYellowQuantum() returns the yellow color of the pixel wand. 1447% 1448% The format of the PixelGetYellowQuantum method is: 1449% 1450% Quantum PixelGetYellowQuantum(const PixelWand *wand) 1451% 1452% A description of each parameter follows: 1453% 1454% o wand: the pixel wand. 1455% 1456*/ 1457WandExport Quantum PixelGetYellowQuantum(const PixelWand *wand) 1458{ 1459 assert(wand != (const PixelWand *) NULL); 1460 assert(wand->signature == MagickWandSignature); 1461 if (wand->debug != MagickFalse) 1462 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1463 return(ClampToQuantum(wand->pixel.blue)); 1464} 1465 1466/* 1467%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1468% % 1469% % 1470% % 1471% P i x e l S e t A l p h a % 1472% % 1473% % 1474% % 1475%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1476% 1477% PixelSetAlpha() sets the normalized alpha value of the pixel wand. 1478% 1479% The format of the PixelSetAlpha method is: 1480% 1481% void PixelSetAlpha(PixelWand *wand,const double alpha) 1482% 1483% A description of each parameter follows: 1484% 1485% o wand: the pixel wand. 1486% 1487% o alpha: the level of transparency: 1.0 is fully opaque and 0.0 is fully 1488% transparent. 1489% 1490*/ 1491WandExport void PixelSetAlpha(PixelWand *wand,const double alpha) 1492{ 1493 assert(wand != (const PixelWand *) NULL); 1494 assert(wand->signature == MagickWandSignature); 1495 if (wand->debug != MagickFalse) 1496 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1497 wand->pixel.alpha=(double) ClampToQuantum(QuantumRange*alpha); 1498} 1499 1500/* 1501%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1502% % 1503% % 1504% % 1505% P i x e l S e t A l p h a Q u a n t u m % 1506% % 1507% % 1508% % 1509%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1510% 1511% PixelSetAlphaQuantum() sets the alpha value of the pixel wand. 1512% 1513% The format of the PixelSetAlphaQuantum method is: 1514% 1515% void PixelSetAlphaQuantum(PixelWand *wand,const Quantum alpha) 1516% 1517% A description of each parameter follows: 1518% 1519% o wand: the pixel wand. 1520% 1521% o alpha: the alpha value. 1522% 1523*/ 1524WandExport void PixelSetAlphaQuantum(PixelWand *wand,const Quantum alpha) 1525{ 1526 assert(wand != (const PixelWand *) NULL); 1527 assert(wand->signature == MagickWandSignature); 1528 if (wand->debug != MagickFalse) 1529 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1530 wand->pixel.alpha=(double) alpha; 1531} 1532 1533/* 1534%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1535% % 1536% % 1537% % 1538% P i x e l S e t B l a c k % 1539% % 1540% % 1541% % 1542%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1543% 1544% PixelSetBlack() sets the normalized black color of the pixel wand. 1545% 1546% The format of the PixelSetBlack method is: 1547% 1548% void PixelSetBlack(PixelWand *wand,const double black) 1549% 1550% A description of each parameter follows: 1551% 1552% o wand: the pixel wand. 1553% 1554% o black: the black color. 1555% 1556*/ 1557WandExport void PixelSetBlack(PixelWand *wand,const double black) 1558{ 1559 assert(wand != (const PixelWand *) NULL); 1560 assert(wand->signature == MagickWandSignature); 1561 if (wand->debug != MagickFalse) 1562 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1563 wand->pixel.black=(double) ClampToQuantum(QuantumRange*black); 1564} 1565 1566/* 1567%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1568% % 1569% % 1570% % 1571% P i x e l S e t B l a c k Q u a n t u m % 1572% % 1573% % 1574% % 1575%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1576% 1577% PixelSetBlackQuantum() sets the black color of the pixel wand. 1578% 1579% The format of the PixelSetBlackQuantum method is: 1580% 1581% void PixelSetBlackQuantum(PixelWand *wand,const Quantum black) 1582% 1583% A description of each parameter follows: 1584% 1585% o wand: the pixel wand. 1586% 1587% o black: the black color. 1588% 1589*/ 1590WandExport void PixelSetBlackQuantum(PixelWand *wand,const Quantum black) 1591{ 1592 assert(wand != (const PixelWand *) NULL); 1593 assert(wand->signature == MagickWandSignature); 1594 if (wand->debug != MagickFalse) 1595 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1596 wand->pixel.black=(double) black; 1597} 1598 1599/* 1600%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1601% % 1602% % 1603% % 1604% P i x e l S e t B l u e % 1605% % 1606% % 1607% % 1608%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1609% 1610% PixelSetBlue() sets the normalized blue color of the pixel wand. 1611% 1612% The format of the PixelSetBlue method is: 1613% 1614% void PixelSetBlue(PixelWand *wand,const double blue) 1615% 1616% A description of each parameter follows: 1617% 1618% o wand: the pixel wand. 1619% 1620% o blue: the blue color. 1621% 1622*/ 1623WandExport void PixelSetBlue(PixelWand *wand,const double blue) 1624{ 1625 assert(wand != (const PixelWand *) NULL); 1626 assert(wand->signature == MagickWandSignature); 1627 if (wand->debug != MagickFalse) 1628 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1629 wand->pixel.blue=(double) ClampToQuantum(QuantumRange*blue); 1630} 1631 1632/* 1633%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1634% % 1635% % 1636% % 1637% P i x e l S e t B l u e Q u a n t u m % 1638% % 1639% % 1640% % 1641%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1642% 1643% PixelSetBlueQuantum() sets the blue color of the pixel wand. 1644% 1645% The format of the PixelSetBlueQuantum method is: 1646% 1647% void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue) 1648% 1649% A description of each parameter follows: 1650% 1651% o wand: the pixel wand. 1652% 1653% o blue: the blue color. 1654% 1655*/ 1656WandExport void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue) 1657{ 1658 assert(wand != (const PixelWand *) NULL); 1659 assert(wand->signature == MagickWandSignature); 1660 if (wand->debug != MagickFalse) 1661 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1662 wand->pixel.blue=(double) blue; 1663} 1664 1665/* 1666%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1667% % 1668% % 1669% % 1670% P i x e l S e t C o l o r % 1671% % 1672% % 1673% % 1674%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1675% 1676% PixelSetColor() sets the color of the pixel wand with a string (e.g. 1677% "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.). 1678% 1679% The format of the PixelSetColor method is: 1680% 1681% MagickBooleanType PixelSetColor(PixelWand *wand,const char *color) 1682% 1683% A description of each parameter follows: 1684% 1685% o wand: the pixel wand. 1686% 1687% o color: the pixel wand color. 1688% 1689*/ 1690WandExport MagickBooleanType PixelSetColor(PixelWand *wand,const char *color) 1691{ 1692 MagickBooleanType 1693 status; 1694 1695 PixelInfo 1696 pixel; 1697 1698 assert(wand != (const PixelWand *) NULL); 1699 assert(wand->signature == MagickWandSignature); 1700 if (wand->debug != MagickFalse) 1701 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1702 status=QueryColorCompliance(color,AllCompliance,&pixel,wand->exception); 1703 if (status != MagickFalse) 1704 wand->pixel=pixel; 1705 return(status); 1706} 1707 1708/* 1709%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1710% % 1711% % 1712% % 1713% P i x e l S e t C o l o r C o u n t % 1714% % 1715% % 1716% % 1717%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1718% 1719% PixelSetColorCount() sets the color count of the pixel wand. 1720% 1721% The format of the PixelSetColorCount method is: 1722% 1723% void PixelSetColorCount(PixelWand *wand,const size_t count) 1724% 1725% A description of each parameter follows: 1726% 1727% o wand: the pixel wand. 1728% 1729% o count: the number of this particular color. 1730% 1731*/ 1732WandExport void PixelSetColorCount(PixelWand *wand,const size_t count) 1733{ 1734 assert(wand != (const PixelWand *) NULL); 1735 assert(wand->signature == MagickWandSignature); 1736 if (wand->debug != MagickFalse) 1737 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1738 wand->count=count; 1739} 1740 1741/* 1742%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1743% % 1744% % 1745% % 1746% P i x e l S e t C o l o r F r o m W a n d % 1747% % 1748% % 1749% % 1750%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1751% 1752% PixelSetColorFromWand() sets the color of the pixel wand. 1753% 1754% The format of the PixelSetColorFromWand method is: 1755% 1756% void PixelSetColorFromWand(PixelWand *wand,const PixelWand *color) 1757% 1758% A description of each parameter follows: 1759% 1760% o wand: the pixel wand. 1761% 1762% o color: set the pixel wand color here. 1763% 1764*/ 1765WandExport void PixelSetColorFromWand(PixelWand *wand,const PixelWand *color) 1766{ 1767 assert(wand != (const PixelWand *) NULL); 1768 assert(wand->signature == MagickWandSignature); 1769 if (wand->debug != MagickFalse) 1770 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1771 assert(color != (const PixelWand *) NULL); 1772 wand->pixel=color->pixel; 1773} 1774 1775/* 1776%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1777% % 1778% % 1779% % 1780% P i x e l S e t C y a n % 1781% % 1782% % 1783% % 1784%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1785% 1786% PixelSetCyan() sets the normalized cyan color of the pixel wand. 1787% 1788% The format of the PixelSetCyan method is: 1789% 1790% void PixelSetCyan(PixelWand *wand,const double cyan) 1791% 1792% A description of each parameter follows: 1793% 1794% o wand: the pixel wand. 1795% 1796% o cyan: the cyan color. 1797% 1798*/ 1799WandExport void PixelSetCyan(PixelWand *wand,const double cyan) 1800{ 1801 assert(wand != (const PixelWand *) NULL); 1802 assert(wand->signature == MagickWandSignature); 1803 if (wand->debug != MagickFalse) 1804 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1805 wand->pixel.red=(double) ClampToQuantum(QuantumRange*cyan); 1806} 1807 1808/* 1809%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1810% % 1811% % 1812% % 1813% P i x e l S e t C y a n Q u a n t u m % 1814% % 1815% % 1816% % 1817%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1818% 1819% PixelSetCyanQuantum() sets the cyan color of the pixel wand. 1820% 1821% The format of the PixelSetCyanQuantum method is: 1822% 1823% void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan) 1824% 1825% A description of each parameter follows: 1826% 1827% o wand: the pixel wand. 1828% 1829% o cyan: the cyan color. 1830% 1831*/ 1832WandExport void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan) 1833{ 1834 assert(wand != (const PixelWand *) NULL); 1835 assert(wand->signature == MagickWandSignature); 1836 if (wand->debug != MagickFalse) 1837 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1838 wand->pixel.red=(double) cyan; 1839} 1840 1841/* 1842%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1843% % 1844% % 1845% % 1846% P i x e l S e t F u z z % 1847% % 1848% % 1849% % 1850%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1851% 1852% PixelSetFuzz() sets the fuzz value of the pixel wand. 1853% 1854% The format of the PixelSetFuzz method is: 1855% 1856% void PixelSetFuzz(PixelWand *wand,const double fuzz) 1857% 1858% A description of each parameter follows: 1859% 1860% o wand: the pixel wand. 1861% 1862% o fuzz: the fuzz value. 1863% 1864*/ 1865WandExport void PixelSetFuzz(PixelWand *wand,const double fuzz) 1866{ 1867 assert(wand != (const PixelWand *) NULL); 1868 assert(wand->signature == MagickWandSignature); 1869 if (wand->debug != MagickFalse) 1870 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1871 wand->pixel.fuzz=(double) fuzz; 1872} 1873 1874/* 1875%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1876% % 1877% % 1878% % 1879% P i x e l S e t G r e e n % 1880% % 1881% % 1882% % 1883%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1884% 1885% PixelSetGreen() sets the normalized green color of the pixel wand. 1886% 1887% The format of the PixelSetGreen method is: 1888% 1889% void PixelSetGreen(PixelWand *wand,const double green) 1890% 1891% A description of each parameter follows: 1892% 1893% o wand: the pixel wand. 1894% 1895% o green: the green color. 1896% 1897*/ 1898WandExport void PixelSetGreen(PixelWand *wand,const double green) 1899{ 1900 assert(wand != (const PixelWand *) NULL); 1901 assert(wand->signature == MagickWandSignature); 1902 if (wand->debug != MagickFalse) 1903 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1904 wand->pixel.green=(double) ClampToQuantum(QuantumRange*green); 1905} 1906 1907/* 1908%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1909% % 1910% % 1911% % 1912% P i x e l S e t G r e e n Q u a n t u m % 1913% % 1914% % 1915% % 1916%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1917% 1918% PixelSetGreenQuantum() sets the green color of the pixel wand. 1919% 1920% The format of the PixelSetGreenQuantum method is: 1921% 1922% void PixelSetGreenQuantum(PixelWand *wand,const Quantum green) 1923% 1924% A description of each parameter follows: 1925% 1926% o wand: the pixel wand. 1927% 1928% o green: the green color. 1929% 1930*/ 1931WandExport void PixelSetGreenQuantum(PixelWand *wand,const Quantum green) 1932{ 1933 assert(wand != (const PixelWand *) NULL); 1934 assert(wand->signature == MagickWandSignature); 1935 if (wand->debug != MagickFalse) 1936 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1937 wand->pixel.green=(double) green; 1938} 1939 1940/* 1941%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1942% % 1943% % 1944% % 1945% P i x e l S e t H S L % 1946% % 1947% % 1948% % 1949%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1950% 1951% PixelSetHSL() sets the normalized HSL color of the pixel wand. 1952% 1953% The format of the PixelSetHSL method is: 1954% 1955% void PixelSetHSL(PixelWand *wand,const double hue, 1956% const double saturation,const double lightness) 1957% 1958% A description of each parameter follows: 1959% 1960% o wand: the pixel wand. 1961% 1962% o hue,saturation,lightness: Return the pixel hue, saturation, and 1963% brightness. 1964% 1965*/ 1966WandExport void PixelSetHSL(PixelWand *wand,const double hue, 1967 const double saturation,const double lightness) 1968{ 1969 double 1970 blue, 1971 green, 1972 red; 1973 1974 assert(wand != (const PixelWand *) NULL); 1975 assert(wand->signature == MagickWandSignature); 1976 if (wand->debug != MagickFalse) 1977 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 1978 ConvertHSLToRGB(hue,saturation,lightness,&red,&green,&blue); 1979 wand->pixel.red=(double) red; 1980 wand->pixel.green=(double) green; 1981 wand->pixel.blue=(double) blue; 1982} 1983 1984/* 1985%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1986% % 1987% % 1988% % 1989% P i x e l S e t I n d e x % 1990% % 1991% % 1992% % 1993%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1994% 1995% PixelSetIndex() sets the colormap index of the pixel wand. 1996% 1997% The format of the PixelSetIndex method is: 1998% 1999% void PixelSetIndex(PixelWand *wand,const Quantum index) 2000% 2001% A description of each parameter follows: 2002% 2003% o wand: the pixel wand. 2004% 2005% o index: the colormap index. 2006% 2007*/ 2008WandExport void PixelSetIndex(PixelWand *wand,const Quantum index) 2009{ 2010 assert(wand != (const PixelWand *) NULL); 2011 assert(wand->signature == MagickWandSignature); 2012 if (wand->debug != MagickFalse) 2013 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2014 wand->pixel.index=(double) index; 2015} 2016 2017/* 2018%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2019% % 2020% % 2021% % 2022% P i x e l S e t M a g e n t a % 2023% % 2024% % 2025% % 2026%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2027% 2028% PixelSetMagenta() sets the normalized magenta color of the pixel wand. 2029% 2030% The format of the PixelSetMagenta method is: 2031% 2032% void PixelSetMagenta(PixelWand *wand,const double magenta) 2033% 2034% A description of each parameter follows: 2035% 2036% o wand: the pixel wand. 2037% 2038% o magenta: the magenta color. 2039% 2040*/ 2041WandExport void PixelSetMagenta(PixelWand *wand,const double magenta) 2042{ 2043 assert(wand != (const PixelWand *) NULL); 2044 assert(wand->signature == MagickWandSignature); 2045 if (wand->debug != MagickFalse) 2046 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2047 wand->pixel.green=(double) ClampToQuantum(QuantumRange*magenta); 2048} 2049 2050/* 2051%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2052% % 2053% % 2054% % 2055% P i x e l S e t M a g e n t a Q u a n t u m % 2056% % 2057% % 2058% % 2059%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2060% 2061% PixelSetMagentaQuantum() sets the magenta color of the pixel wand. 2062% 2063% The format of the PixelSetMagentaQuantum method is: 2064% 2065% void PixelSetMagentaQuantum(PixelWand *wand, 2066% const Quantum magenta) 2067% 2068% A description of each parameter follows: 2069% 2070% o wand: the pixel wand. 2071% 2072% o magenta: the green magenta. 2073% 2074*/ 2075WandExport void PixelSetMagentaQuantum(PixelWand *wand,const Quantum magenta) 2076{ 2077 assert(wand != (const PixelWand *) NULL); 2078 assert(wand->signature == MagickWandSignature); 2079 if (wand->debug != MagickFalse) 2080 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2081 wand->pixel.green=(double) magenta; 2082} 2083 2084/* 2085%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2086% % 2087% % 2088% % 2089% P i x e l S e t P i x e l C o l o r % 2090% % 2091% % 2092% % 2093%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2094% 2095% PixelSetPixelColor() sets the color of the pixel wand. 2096% 2097% The format of the PixelSetPixelColor method is: 2098% 2099% void PixelSetPixelColor(PixelWand *wand,const PixelInfo *color) 2100% 2101% A description of each parameter follows: 2102% 2103% o wand: the pixel wand. 2104% 2105% o color: the pixel wand color. 2106% 2107*/ 2108WandExport void PixelSetPixelColor(PixelWand *wand,const PixelInfo *color) 2109{ 2110 assert(wand != (const PixelWand *) NULL); 2111 assert(wand->signature == MagickWandSignature); 2112 if (wand->debug != MagickFalse) 2113 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2114 assert(color != (const PixelInfo *) NULL); 2115 wand->pixel=(*color); 2116} 2117 2118/* 2119%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2120% % 2121% % 2122% % 2123% P i x e l S e t Q u a n t u m P i x e l % 2124% % 2125% % 2126% % 2127%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2128% 2129% PixelSetQuantumPixel() sets the pixel of the pixel wand. 2130% 2131% The format of the PixelSetQuantumPixel method is: 2132% 2133% void PixelSetQuantumPixel(const Image *image,const Quantum *pixel, 2134% PixelWand *wand) 2135% 2136% A description of each parameter follows: 2137% 2138% o wand: the pixel wand. 2139% 2140% o pixel: the pixel wand pixel. 2141% 2142*/ 2143WandExport void PixelSetQuantumPixel(const Image *image,const Quantum *pixel, 2144 PixelWand *wand) 2145{ 2146 assert(wand != (const PixelWand *) NULL); 2147 assert(wand->signature == MagickWandSignature); 2148 if (wand->debug != MagickFalse) 2149 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2150 assert(pixel != (Quantum *) NULL); 2151 wand->pixel.red=(double) GetPixelRed(image,pixel); 2152 wand->pixel.green=(double) GetPixelGreen(image,pixel); 2153 wand->pixel.blue=(double) GetPixelBlue(image,pixel); 2154 wand->pixel.black=(double) GetPixelBlack(image,pixel); 2155 wand->pixel.alpha=(double) GetPixelAlpha(image,pixel); 2156 wand->pixel.alpha_trait=GetPixelAlpha(image,pixel) != OpaqueAlpha ? 2157 BlendPixelTrait : UndefinedPixelTrait; 2158} 2159 2160/* 2161%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2162% % 2163% % 2164% % 2165% P i x e l S e t R e d % 2166% % 2167% % 2168% % 2169%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2170% 2171% PixelSetRed() sets the normalized red color of the pixel wand. 2172% 2173% The format of the PixelSetRed method is: 2174% 2175% void PixelSetRed(PixelWand *wand,const double red) 2176% 2177% A description of each parameter follows: 2178% 2179% o wand: the pixel wand. 2180% 2181% o red: the red color. 2182% 2183*/ 2184WandExport void PixelSetRed(PixelWand *wand,const double red) 2185{ 2186 assert(wand != (const PixelWand *) NULL); 2187 assert(wand->signature == MagickWandSignature); 2188 if (wand->debug != MagickFalse) 2189 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2190 wand->pixel.red=(double) ClampToQuantum(QuantumRange*red); 2191} 2192 2193/* 2194%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2195% % 2196% % 2197% % 2198% P i x e l S e t R e d Q u a n t u m % 2199% % 2200% % 2201% % 2202%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2203% 2204% PixelSetRedQuantum() sets the red color of the pixel wand. 2205% 2206% The format of the PixelSetRedQuantum method is: 2207% 2208% void PixelSetRedQuantum(PixelWand *wand,const Quantum red) 2209% 2210% A description of each parameter follows: 2211% 2212% o wand: the pixel wand. 2213% 2214% o red: the red color. 2215% 2216*/ 2217WandExport void PixelSetRedQuantum(PixelWand *wand,const Quantum red) 2218{ 2219 assert(wand != (const PixelWand *) NULL); 2220 assert(wand->signature == MagickWandSignature); 2221 if (wand->debug != MagickFalse) 2222 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2223 wand->pixel.red=(double) red; 2224} 2225 2226/* 2227%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2228% % 2229% % 2230% % 2231% P i x e l S e t Y e l l o w % 2232% % 2233% % 2234% % 2235%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2236% 2237% PixelSetYellow() sets the normalized yellow color of the pixel wand. 2238% 2239% The format of the PixelSetYellow method is: 2240% 2241% void PixelSetYellow(PixelWand *wand,const double yellow) 2242% 2243% A description of each parameter follows: 2244% 2245% o wand: the pixel wand. 2246% 2247% o yellow: the yellow color. 2248% 2249*/ 2250WandExport void PixelSetYellow(PixelWand *wand,const double yellow) 2251{ 2252 assert(wand != (const PixelWand *) NULL); 2253 assert(wand->signature == MagickWandSignature); 2254 if (wand->debug != MagickFalse) 2255 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2256 wand->pixel.blue=(double) ClampToQuantum(QuantumRange*yellow); 2257} 2258 2259/* 2260%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2261% % 2262% % 2263% % 2264% P i x e l S e t Y e l l o w Q u a n t u m % 2265% % 2266% % 2267% % 2268%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2269% 2270% PixelSetYellowQuantum() sets the yellow color of the pixel wand. 2271% 2272% The format of the PixelSetYellowQuantum method is: 2273% 2274% void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow) 2275% 2276% A description of each parameter follows: 2277% 2278% o wand: the pixel wand. 2279% 2280% o yellow: the yellow color. 2281% 2282*/ 2283WandExport void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow) 2284{ 2285 assert(wand != (const PixelWand *) NULL); 2286 assert(wand->signature == MagickWandSignature); 2287 if (wand->debug != MagickFalse) 2288 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); 2289 wand->pixel.blue=(double) yellow; 2290} 2291