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