]> granicus.if.org Git - imagemagick/blob - wand/pixel-wand.c
(no commit message)
[imagemagick] / wand / pixel-wand.c
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 %                                John Cristy                                  %
23 %                                March 2003                                   %
24 %                                                                             %
25 %                                                                             %
26 %  Copyright 1999-2010 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 \f
46 /*
47   Include declarations.
48 */
49 #include "wand/studio.h"
50 #include "wand/MagickWand.h"
51 #include "wand/magick-wand-private.h"
52 #include "wand/pixel-wand-private.h"
53 #include "wand/wand.h"
54 \f
55 /*
56   Define declarations.
57 */
58 #define PixelWandId  "PixelWand"
59 \f
60 /*
61   Typedef declarations.
62 */
63 struct _PixelWand
64 {
65   size_t
66     id;
67
68   char
69     name[MaxTextExtent];
70
71   ExceptionInfo
72     *exception;
73
74   MagickPixelPacket
75     pixel;
76
77   size_t
78     count;
79
80   MagickBooleanType
81     debug;
82
83   size_t
84     signature;
85 };
86 \f
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 */
109 WandExport void ClearPixelWand(PixelWand *wand)
110 {
111   assert(wand != (PixelWand *) NULL);
112   assert(wand->signature == WandSignature);
113   if (wand->debug != MagickFalse)
114     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
115   ClearMagickException(wand->exception);
116   wand->pixel.colorspace=RGBColorspace;
117   wand->debug=IsEventLogging();
118 }
119 \f
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 */
142 WandExport PixelWand *ClonePixelWand(const PixelWand *wand)
143 {
144   PixelWand
145     *clone_wand;
146
147   assert(wand != (PixelWand *) NULL);
148   assert(wand->signature == WandSignature);
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) FormatMagickString(clone_wand->name,MaxTextExtent,"%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=WandSignature;
167   return(clone_wand);
168 }
169 \f
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 */
195 WandExport 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 \f
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 */
236 WandExport PixelWand *DestroyPixelWand(PixelWand *wand)
237 {
238   assert(wand != (PixelWand *) NULL);
239   assert(wand->signature == WandSignature);
240   if (wand->debug != MagickFalse)
241     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
242   wand->exception=DestroyExceptionInfo(wand->exception);
243   wand->signature=(~WandSignature);
244   RelinquishWandId(wand->id);
245   wand=(PixelWand *) RelinquishMagickMemory(wand);
246   return(wand);
247 }
248 \f
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 */
275 WandExport 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 == WandSignature);
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 \f
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 */
321 WandExport MagickBooleanType IsPixelWandSimilar(PixelWand *p,PixelWand *q,
322   const double fuzz)
323 {
324   assert(p != (PixelWand *) NULL);
325   assert(p->signature == WandSignature);
326   if (p->debug != MagickFalse)
327     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",p->name);
328   assert(q != (PixelWand *) NULL);
329   assert(q->signature == WandSignature);
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(IsMagickColorSimilar(&p->pixel,&q->pixel));
335 }
336 \f
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 */
359 WandExport MagickBooleanType IsPixelWand(const PixelWand *wand)
360 {
361   if (wand == (const PixelWand *) NULL)
362     return(MagickFalse);
363   if (wand->signature != WandSignature)
364     return(MagickFalse);
365   if (LocaleNCompare(wand->name,PixelWandId,strlen(PixelWandId)) != 0)
366     return(MagickFalse);
367   return(MagickTrue);
368 }
369 \f
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 */
388 WandExport 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) FormatMagickString(wand->name,MaxTextExtent,"%s-%.20g",PixelWandId,
410     (double) wand->id);
411   wand->exception=AcquireExceptionInfo();
412   GetMagickPixelPacket((Image *) NULL,&wand->pixel);
413   wand->debug=IsEventLogging();
414   if (wand->debug != MagickFalse)
415     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
416   wand->signature=WandSignature;
417   return(wand);
418 }
419 \f
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 */
442 WandExport 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 \f
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 */
482 WandExport MagickBooleanType PixelClearException(PixelWand *wand)
483 {
484   assert(wand != (PixelWand *) NULL);
485   assert(wand->signature == WandSignature);
486   if (wand->debug != MagickFalse)
487     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
488   ClearMagickException(wand->exception);
489   return(MagickTrue);
490 }
491 \f
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 color 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 */
514 WandExport double PixelGetAlpha(const PixelWand *wand)
515 {
516   assert(wand != (const PixelWand *) NULL);
517   assert(wand->signature == WandSignature);
518   if (wand->debug != MagickFalse)
519     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
520   return((double) QuantumScale*(QuantumRange-wand->pixel.opacity));
521 }
522 \f
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 */
545 WandExport Quantum PixelGetAlphaQuantum(const PixelWand *wand)
546 {
547   assert(wand != (const PixelWand *) NULL);
548   assert(wand->signature == WandSignature);
549   if (wand->debug != MagickFalse)
550     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
551   return((Quantum) QuantumRange-ClampToQuantum(wand->pixel.opacity));
552 }
553 \f
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 */
576 WandExport double PixelGetBlack(const PixelWand *wand)
577 {
578   assert(wand != (const PixelWand *) NULL);
579   assert(wand->signature == WandSignature);
580   if (wand->debug != MagickFalse)
581     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
582   return((double) QuantumScale*wand->pixel.index);
583 }
584 \f
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 */
607 WandExport Quantum PixelGetBlackQuantum(const PixelWand *wand)
608 {
609   assert(wand != (const PixelWand *) NULL);
610   assert(wand->signature == WandSignature);
611   if (wand->debug != MagickFalse)
612     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
613   return(ClampToQuantum(wand->pixel.index));
614 }
615 \f
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 */
638 WandExport double PixelGetBlue(const PixelWand *wand)
639 {
640   assert(wand != (const PixelWand *) NULL);
641   assert(wand->signature == WandSignature);
642   if (wand->debug != MagickFalse)
643     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
644   return((double) QuantumScale*wand->pixel.blue);
645 }
646 \f
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 */
669 WandExport Quantum PixelGetBlueQuantum(const PixelWand *wand)
670 {
671   assert(wand != (const PixelWand *) NULL);
672   assert(wand->signature == WandSignature);
673   if (wand->debug != MagickFalse)
674     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
675   return(ClampToQuantum(wand->pixel.blue));
676 }
677 \f
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 */
700 WandExport char *PixelGetColorAsString(const PixelWand *wand)
701 {
702   char
703     *color;
704
705   MagickPixelPacket
706     pixel;
707
708   assert(wand != (const PixelWand *) NULL);
709   assert(wand->signature == WandSignature);
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 \f
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 */
741 WandExport char *PixelGetColorAsNormalizedString(const PixelWand *wand)
742 {
743   char
744     color[MaxTextExtent];
745
746   assert(wand != (const PixelWand *) NULL);
747   assert(wand->signature == WandSignature);
748   if (wand->debug != MagickFalse)
749     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
750   (void) FormatMagickString(color,MaxTextExtent,"%g,%g,%g",
751     (double) (QuantumScale*wand->pixel.red),
752     (double) (QuantumScale*wand->pixel.green),
753     (double) (QuantumScale*wand->pixel.blue));
754   if (wand->pixel.colorspace == CMYKColorspace)
755     (void) FormatMagickString(color+strlen(color),MaxTextExtent,",%g",
756       (double) (QuantumScale*wand->pixel.index));
757   if (wand->pixel.matte != MagickFalse)
758     (void) FormatMagickString(color+strlen(color),MaxTextExtent,",%g",
759       (double) (QuantumScale*wand->pixel.opacity));
760   return(ConstantString(color));
761 }
762 \f
763 /*
764 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
765 %                                                                             %
766 %                                                                             %
767 %                                                                             %
768 %   P i x e l G e t C o l o r C o u n t                                       %
769 %                                                                             %
770 %                                                                             %
771 %                                                                             %
772 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
773 %
774 %  PixelGetColorCount() returns the color count associated with this color.
775 %
776 %  The format of the PixelGetColorCount method is:
777 %
778 %      size_t PixelGetColorCount(const PixelWand *wand)
779 %
780 %  A description of each parameter follows:
781 %
782 %    o wand: the pixel wand.
783 %
784 */
785 WandExport size_t PixelGetColorCount(const PixelWand *wand)
786 {
787   assert(wand != (const PixelWand *) NULL);
788   assert(wand->signature == WandSignature);
789   if (wand->debug != MagickFalse)
790     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
791   return(wand->count);
792 }
793 \f
794 /*
795 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
796 %                                                                             %
797 %                                                                             %
798 %                                                                             %
799 %   P i x e l G e t C y a n                                                   %
800 %                                                                             %
801 %                                                                             %
802 %                                                                             %
803 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
804 %
805 %  PixelGetCyan() returns the normalized cyan color of the pixel wand.
806 %
807 %  The format of the PixelGetCyan method is:
808 %
809 %      double PixelGetCyan(const PixelWand *wand)
810 %
811 %  A description of each parameter follows:
812 %
813 %    o wand: the pixel wand.
814 %
815 */
816 WandExport double PixelGetCyan(const PixelWand *wand)
817 {
818   assert(wand != (const PixelWand *) NULL);
819   assert(wand->signature == WandSignature);
820   if (wand->debug != MagickFalse)
821     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
822   return((double) QuantumScale*wand->pixel.red);
823 }
824 \f
825 /*
826 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
827 %                                                                             %
828 %                                                                             %
829 %                                                                             %
830 %   P i x e l G e t C y a n Q u a n t u m                                     %
831 %                                                                             %
832 %                                                                             %
833 %                                                                             %
834 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
835 %
836 %  PixelGetCyanQuantum() returns the cyan color of the pixel wand.
837 %
838 %  The format of the PixelGetCyanQuantum method is:
839 %
840 %      Quantum PixelGetCyanQuantum(const PixelWand *wand)
841 %
842 %  A description of each parameter follows:
843 %
844 %    o wand: the pixel wand.
845 %
846 */
847 WandExport Quantum PixelGetCyanQuantum(const PixelWand *wand)
848 {
849   assert(wand != (const PixelWand *) NULL);
850   assert(wand->signature == WandSignature);
851   if (wand->debug != MagickFalse)
852     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
853   return(ClampToQuantum(wand->pixel.red));
854 }
855 \f
856 /*
857 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
858 %                                                                             %
859 %                                                                             %
860 %                                                                             %
861 %   P i x e l G e t E x c e p t i o n                                         %
862 %                                                                             %
863 %                                                                             %
864 %                                                                             %
865 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
866 %
867 %  PixelGetException() returns the severity, reason, and description of any
868 %  error that occurs when using other methods in this API.
869 %
870 %  The format of the PixelGetException method is:
871 %
872 %      char *PixelGetException(const PixelWand *wand,ExceptionType *severity)
873 %
874 %  A description of each parameter follows:
875 %
876 %    o wand: the pixel wand.
877 %
878 %    o severity: the severity of the error is returned here.
879 %
880 */
881 WandExport char *PixelGetException(const PixelWand *wand,
882   ExceptionType *severity)
883 {
884   char
885     *description;
886
887   assert(wand != (const PixelWand *) NULL);
888   assert(wand->signature == WandSignature);
889   if (wand->debug != MagickFalse)
890     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
891   assert(severity != (ExceptionType *) NULL);
892   *severity=wand->exception->severity;
893   description=(char *) AcquireQuantumMemory(2UL*MaxTextExtent,
894     sizeof(*description));
895   if (description == (char *) NULL)
896     ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed",
897       wand->name);
898   *description='\0';
899   if (wand->exception->reason != (char *) NULL)
900     (void) CopyMagickString(description,GetLocaleExceptionMessage(
901       wand->exception->severity,wand->exception->reason),MaxTextExtent);
902   if (wand->exception->description != (char *) NULL)
903     {
904       (void) ConcatenateMagickString(description," (",MaxTextExtent);
905       (void) ConcatenateMagickString(description,GetLocaleExceptionMessage(
906         wand->exception->severity,wand->exception->description),MaxTextExtent);
907       (void) ConcatenateMagickString(description,")",MaxTextExtent);
908     }
909   return(description);
910 }
911 \f
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 */
935 WandExport ExceptionType PixelGetExceptionType(const PixelWand *wand)
936 {
937   assert(wand != (const PixelWand *) NULL);
938   assert(wand->signature == WandSignature);
939   if (wand->debug != MagickFalse)
940     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
941   return(wand->exception->severity);
942 }
943 \f
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 */
966 WandExport double PixelGetFuzz(const PixelWand *wand)
967 {
968   assert(wand != (const PixelWand *) NULL);
969   assert(wand->signature == WandSignature);
970   if (wand->debug != MagickFalse)
971     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
972   return((double) wand->pixel.fuzz);
973 }
974 \f
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 */
997 WandExport double PixelGetGreen(const PixelWand *wand)
998 {
999   assert(wand != (const PixelWand *) NULL);
1000   assert(wand->signature == WandSignature);
1001   if (wand->debug != MagickFalse)
1002     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1003   return((double) QuantumScale*wand->pixel.green);
1004 }
1005 \f
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 */
1028 WandExport Quantum PixelGetGreenQuantum(const PixelWand *wand)
1029 {
1030   assert(wand != (const PixelWand *) NULL);
1031   assert(wand->signature == WandSignature);
1032   if (wand->debug != MagickFalse)
1033     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1034   return(ClampToQuantum(wand->pixel.green));
1035 }
1036 \f
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 */
1063 WandExport void PixelGetHSL(const PixelWand *wand,double *hue,
1064   double *saturation,double *lightness)
1065 {
1066   assert(wand != (const PixelWand *) NULL);
1067   assert(wand->signature == WandSignature);
1068   if (wand->debug != MagickFalse)
1069     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1070   ConvertRGBToHSL(ClampToQuantum(wand->pixel.red),ClampToQuantum(
1071     wand->pixel.green),ClampToQuantum(wand->pixel.blue),hue,saturation,
1072     lightness);
1073 }
1074 \f
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 %      IndexPacket PixelGetIndex(const PixelWand *wand)
1091 %
1092 %  A description of each parameter follows:
1093 %
1094 %    o wand: the pixel wand.
1095 %
1096 */
1097 WandExport IndexPacket PixelGetIndex(const PixelWand *wand)
1098 {
1099   assert(wand != (const PixelWand *) NULL);
1100   assert(wand->signature == WandSignature);
1101   if (wand->debug != MagickFalse)
1102     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1103   return((IndexPacket) wand->pixel.index);
1104 }
1105 \f
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 */
1128 WandExport double PixelGetMagenta(const PixelWand *wand)
1129 {
1130   assert(wand != (const PixelWand *) NULL);
1131   assert(wand->signature == WandSignature);
1132   if (wand->debug != MagickFalse)
1133     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1134   return((double) QuantumScale*wand->pixel.green);
1135 }
1136 \f
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 */
1159 WandExport Quantum PixelGetMagentaQuantum(const PixelWand *wand)
1160 {
1161   assert(wand != (const PixelWand *) NULL);
1162   assert(wand->signature == WandSignature);
1163   if (wand->debug != MagickFalse)
1164     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1165   return(ClampToQuantum(wand->pixel.green));
1166 }
1167 \f
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,MagickPixelPacket *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 */
1192 WandExport void PixelGetMagickColor(const PixelWand *wand,
1193   MagickPixelPacket *color)
1194 {
1195   assert(wand != (const PixelWand *) NULL);
1196   assert(wand->signature == WandSignature);
1197   if (wand->debug != MagickFalse)
1198     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1199   assert(color != (MagickPixelPacket *) NULL);
1200   *color=wand->pixel;
1201 }
1202 \f
1203 /*
1204 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1205 %                                                                             %
1206 %                                                                             %
1207 %                                                                             %
1208 %   P i x e l G e t O p a c i t y                                             %
1209 %                                                                             %
1210 %                                                                             %
1211 %                                                                             %
1212 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1213 %
1214 %  PixelGetOpacity() returns the normalized opacity color of the pixel wand.
1215 %
1216 %  The format of the PixelGetOpacity method is:
1217 %
1218 %      double PixelGetOpacity(const PixelWand *wand)
1219 %
1220 %  A description of each parameter follows:
1221 %
1222 %    o wand: the pixel wand.
1223 %
1224 */
1225 WandExport double PixelGetOpacity(const PixelWand *wand)
1226 {
1227   assert(wand != (const PixelWand *) NULL);
1228   assert(wand->signature == WandSignature);
1229   if (wand->debug != MagickFalse)
1230     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1231   return((double) QuantumScale*wand->pixel.opacity);
1232 }
1233 \f
1234 /*
1235 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1236 %                                                                             %
1237 %                                                                             %
1238 %                                                                             %
1239 %   P i x e l G e t O p a c i t y Q u a n t u m                               %
1240 %                                                                             %
1241 %                                                                             %
1242 %                                                                             %
1243 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1244 %
1245 %  PixelGetOpacityQuantum() returns the opacity color of the pixel wand.
1246 %
1247 %  The format of the PixelGetOpacityQuantum method is:
1248 %
1249 %      Quantum PixelGetOpacityQuantum(const PixelWand *wand)
1250 %
1251 %  A description of each parameter follows:
1252 %
1253 %    o wand: the pixel wand.
1254 %
1255 */
1256 WandExport Quantum PixelGetOpacityQuantum(const PixelWand *wand)
1257 {
1258   assert(wand != (const PixelWand *) NULL);
1259   assert(wand->signature == WandSignature);
1260   if (wand->debug != MagickFalse)
1261     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1262   return(ClampToQuantum(wand->pixel.opacity));
1263 }
1264 \f
1265 /*
1266 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1267 %                                                                             %
1268 %                                                                             %
1269 %                                                                             %
1270 %   P i x e l G e t Q u a n t u m C o l o r                                   %
1271 %                                                                             %
1272 %                                                                             %
1273 %                                                                             %
1274 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1275 %
1276 %  PixelGetQuantumColor() gets the color of the pixel wand as a PixelPacket.
1277 %
1278 %  The format of the PixelGetQuantumColor method is:
1279 %
1280 %      void PixelGetQuantumColor(PixelWand *wand,PixelPacket *color)
1281 %
1282 %  A description of each parameter follows:
1283 %
1284 %    o wand: the pixel wand.
1285 %
1286 %    o color:  The pixel wand color is returned here.
1287 %
1288 */
1289 WandExport void PixelGetQuantumColor(const PixelWand *wand,PixelPacket *color)
1290 {
1291   assert(wand != (const PixelWand *) NULL);
1292   assert(wand->signature == WandSignature);
1293   if (wand->debug != MagickFalse)
1294     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1295   assert(color != (PixelPacket *) NULL);
1296   color->opacity=ClampToQuantum(wand->pixel.opacity);
1297   if (wand->pixel.colorspace == CMYKColorspace)
1298     {
1299       color->red=ClampToQuantum((MagickRealType) QuantumRange-
1300         (wand->pixel.red*(QuantumRange-wand->pixel.index)+wand->pixel.index));
1301       color->green=ClampToQuantum((MagickRealType) QuantumRange-
1302         (wand->pixel.green*(QuantumRange-wand->pixel.index)+wand->pixel.index));
1303       color->blue=ClampToQuantum((MagickRealType) QuantumRange-
1304         (wand->pixel.blue*(QuantumRange-wand->pixel.index)+wand->pixel.index));
1305       return;
1306     }
1307   color->red=ClampToQuantum(wand->pixel.red);
1308   color->green=ClampToQuantum(wand->pixel.green);
1309   color->blue=ClampToQuantum(wand->pixel.blue);
1310 }
1311 \f
1312 /*
1313 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1314 %                                                                             %
1315 %                                                                             %
1316 %                                                                             %
1317 %   P i x e l G e t R e d                                                     %
1318 %                                                                             %
1319 %                                                                             %
1320 %                                                                             %
1321 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1322 %
1323 %  PixelGetRed() returns the normalized red color of the pixel wand.
1324 %
1325 %  The format of the PixelGetRed method is:
1326 %
1327 %      double PixelGetRed(const PixelWand *wand)
1328 %
1329 %  A description of each parameter follows:
1330 %
1331 %    o wand: the pixel wand.
1332 %
1333 */
1334 WandExport double PixelGetRed(const PixelWand *wand)
1335 {
1336   assert(wand != (const PixelWand *) NULL);
1337   assert(wand->signature == WandSignature);
1338   if (wand->debug != MagickFalse)
1339     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1340   return((double) QuantumScale*wand->pixel.red);
1341 }
1342 \f
1343 /*
1344 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1345 %                                                                             %
1346 %                                                                             %
1347 %                                                                             %
1348 %   P i x e l G e t R e d Q u a n t u m                                       %
1349 %                                                                             %
1350 %                                                                             %
1351 %                                                                             %
1352 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1353 %
1354 %  PixelGetRedQuantum() returns the red color of the pixel wand.
1355 %
1356 %  The format of the PixelGetRedQuantum method is:
1357 %
1358 %      Quantum PixelGetRedQuantum(const PixelWand *wand)
1359 %
1360 %  A description of each parameter follows:
1361 %
1362 %    o wand: the pixel wand.
1363 %
1364 */
1365 WandExport Quantum PixelGetRedQuantum(const PixelWand *wand)
1366 {
1367   assert(wand != (const PixelWand *) NULL);
1368   assert(wand->signature == WandSignature);
1369   if (wand->debug != MagickFalse)
1370     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1371   return(ClampToQuantum(wand->pixel.red));
1372 }
1373 \f
1374 /*
1375 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1376 %                                                                             %
1377 %                                                                             %
1378 %                                                                             %
1379 %   P i x e l G e t Y e l l o w                                               %
1380 %                                                                             %
1381 %                                                                             %
1382 %                                                                             %
1383 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1384 %
1385 %  PixelGetYellow() returns the normalized yellow color of the pixel wand.
1386 %
1387 %  The format of the PixelGetYellow method is:
1388 %
1389 %      double PixelGetYellow(const PixelWand *wand)
1390 %
1391 %  A description of each parameter follows:
1392 %
1393 %    o wand: the pixel wand.
1394 %
1395 */
1396 WandExport double PixelGetYellow(const PixelWand *wand)
1397 {
1398   assert(wand != (const PixelWand *) NULL);
1399   assert(wand->signature == WandSignature);
1400   if (wand->debug != MagickFalse)
1401     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1402   return((double) QuantumScale*wand->pixel.blue);
1403 }
1404 \f
1405 /*
1406 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1407 %                                                                             %
1408 %                                                                             %
1409 %                                                                             %
1410 %   P i x e l G e t Y e l l o w Q u a n t u m                                 %
1411 %                                                                             %
1412 %                                                                             %
1413 %                                                                             %
1414 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1415 %
1416 %  PixelGetYellowQuantum() returns the yellow color of the pixel wand.
1417 %
1418 %  The format of the PixelGetYellowQuantum method is:
1419 %
1420 %      Quantum PixelGetYellowQuantum(const PixelWand *wand)
1421 %
1422 %  A description of each parameter follows:
1423 %
1424 %    o wand: the pixel wand.
1425 %
1426 */
1427 WandExport Quantum PixelGetYellowQuantum(const PixelWand *wand)
1428 {
1429   assert(wand != (const PixelWand *) NULL);
1430   assert(wand->signature == WandSignature);
1431   if (wand->debug != MagickFalse)
1432     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1433   return(ClampToQuantum(wand->pixel.blue));
1434 }
1435 \f
1436 /*
1437 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1438 %                                                                             %
1439 %                                                                             %
1440 %                                                                             %
1441 %   P i x e l S e t A l p h a                                                 %
1442 %                                                                             %
1443 %                                                                             %
1444 %                                                                             %
1445 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1446 %
1447 %  PixelSetAlpha() sets the normalized alpha color of the pixel wand.
1448 %
1449 %  The format of the PixelSetAlpha method is:
1450 %
1451 %      void PixelSetAlpha(PixelWand *wand,const double alpha)
1452 %
1453 %  A description of each parameter follows:
1454 %
1455 %    o wand: the pixel wand.
1456 %
1457 %    o alpha: the level of transparency: 1.0 is fully opaque and 0.0 is fully
1458 %      transparent.
1459 %
1460 */
1461 WandExport void PixelSetAlpha(PixelWand *wand,const double alpha)
1462 {
1463   assert(wand != (const PixelWand *) NULL);
1464   assert(wand->signature == WandSignature);
1465   if (wand->debug != MagickFalse)
1466     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1467   wand->pixel.opacity=(MagickRealType) (QuantumRange-
1468     ClampToQuantum((MagickRealType) QuantumRange*alpha));
1469 }
1470 \f
1471 /*
1472 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1473 %                                                                             %
1474 %                                                                             %
1475 %                                                                             %
1476 %   P i x e l S e t A l p h a Q u a n t u m                                   %
1477 %                                                                             %
1478 %                                                                             %
1479 %                                                                             %
1480 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1481 %
1482 %  PixelSetAlphaQuantum() sets the alpha color of the pixel wand.
1483 %
1484 %  The format of the PixelSetAlphaQuantum method is:
1485 %
1486 %      void PixelSetAlphaQuantum(PixelWand *wand,
1487 %        const Quantum opacity)
1488 %
1489 %  A description of each parameter follows:
1490 %
1491 %    o wand: the pixel wand.
1492 %
1493 %    o opacity: the opacity color.
1494 %
1495 */
1496 WandExport void PixelSetAlphaQuantum(PixelWand *wand,const Quantum opacity)
1497 {
1498   assert(wand != (const PixelWand *) NULL);
1499   assert(wand->signature == WandSignature);
1500   if (wand->debug != MagickFalse)
1501     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1502   wand->pixel.opacity=(MagickRealType) (QuantumRange-opacity);
1503 }
1504 \f
1505 /*
1506 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1507 %                                                                             %
1508 %                                                                             %
1509 %                                                                             %
1510 %   P i x e l S e t B l a c k                                                 %
1511 %                                                                             %
1512 %                                                                             %
1513 %                                                                             %
1514 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1515 %
1516 %  PixelSetBlack() sets the normalized black color of the pixel wand.
1517 %
1518 %  The format of the PixelSetBlack method is:
1519 %
1520 %      void PixelSetBlack(PixelWand *wand,const double black)
1521 %
1522 %  A description of each parameter follows:
1523 %
1524 %    o wand: the pixel wand.
1525 %
1526 %    o black: the black color.
1527 %
1528 */
1529 WandExport void PixelSetBlack(PixelWand *wand,const double black)
1530 {
1531   assert(wand != (const PixelWand *) NULL);
1532   assert(wand->signature == WandSignature);
1533   if (wand->debug != MagickFalse)
1534     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1535   wand->pixel.index=(MagickRealType) ClampToQuantum((MagickRealType)
1536     QuantumRange*black);
1537 }
1538 \f
1539 /*
1540 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1541 %                                                                             %
1542 %                                                                             %
1543 %                                                                             %
1544 %   P i x e l S e t B l a c k Q u a n t u m                                   %
1545 %                                                                             %
1546 %                                                                             %
1547 %                                                                             %
1548 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1549 %
1550 %  PixelSetBlackQuantum() sets the black color of the pixel wand.
1551 %
1552 %  The format of the PixelSetBlackQuantum method is:
1553 %
1554 %      void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
1555 %
1556 %  A description of each parameter follows:
1557 %
1558 %    o wand: the pixel wand.
1559 %
1560 %    o black: the black color.
1561 %
1562 */
1563 WandExport void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
1564 {
1565   assert(wand != (const PixelWand *) NULL);
1566   assert(wand->signature == WandSignature);
1567   if (wand->debug != MagickFalse)
1568     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1569   wand->pixel.index=(MagickRealType) black;
1570 }
1571 \f
1572 /*
1573 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1574 %                                                                             %
1575 %                                                                             %
1576 %                                                                             %
1577 %   P i x e l S e t B l u e                                                   %
1578 %                                                                             %
1579 %                                                                             %
1580 %                                                                             %
1581 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1582 %
1583 %  PixelSetBlue() sets the normalized blue color of the pixel wand.
1584 %
1585 %  The format of the PixelSetBlue method is:
1586 %
1587 %      void PixelSetBlue(PixelWand *wand,const double blue)
1588 %
1589 %  A description of each parameter follows:
1590 %
1591 %    o wand: the pixel wand.
1592 %
1593 %    o blue: the blue color.
1594 %
1595 */
1596 WandExport void PixelSetBlue(PixelWand *wand,const double blue)
1597 {
1598   assert(wand != (const PixelWand *) NULL);
1599   assert(wand->signature == WandSignature);
1600   if (wand->debug != MagickFalse)
1601     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1602   wand->pixel.blue=(MagickRealType) ClampToQuantum((MagickRealType)
1603     QuantumRange*blue);
1604 }
1605 \f
1606 /*
1607 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1608 %                                                                             %
1609 %                                                                             %
1610 %                                                                             %
1611 %   P i x e l S e t B l u e Q u a n t u m                                     %
1612 %                                                                             %
1613 %                                                                             %
1614 %                                                                             %
1615 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1616 %
1617 %  PixelSetBlueQuantum() sets the blue color of the pixel wand.
1618 %
1619 %  The format of the PixelSetBlueQuantum method is:
1620 %
1621 %      void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
1622 %
1623 %  A description of each parameter follows:
1624 %
1625 %    o wand: the pixel wand.
1626 %
1627 %    o blue: the blue color.
1628 %
1629 */
1630 WandExport void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
1631 {
1632   assert(wand != (const PixelWand *) NULL);
1633   assert(wand->signature == WandSignature);
1634   if (wand->debug != MagickFalse)
1635     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1636   wand->pixel.blue=(MagickRealType) blue;
1637 }
1638 \f
1639 /*
1640 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1641 %                                                                             %
1642 %                                                                             %
1643 %                                                                             %
1644 %   P i x e l S e t C o l o r                                                 %
1645 %                                                                             %
1646 %                                                                             %
1647 %                                                                             %
1648 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1649 %
1650 %  PixelSetColor() sets the color of the pixel wand with a string (e.g.
1651 %  "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).
1652 %
1653 %  The format of the PixelSetColor method is:
1654 %
1655 %      MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
1656 %
1657 %  A description of each parameter follows:
1658 %
1659 %    o wand: the pixel wand.
1660 %
1661 %    o color: the pixel wand color.
1662 %
1663 */
1664 WandExport MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
1665 {
1666   MagickBooleanType
1667     status;
1668
1669   MagickPixelPacket
1670     pixel;
1671
1672   assert(wand != (const PixelWand *) NULL);
1673   assert(wand->signature == WandSignature);
1674   if (wand->debug != MagickFalse)
1675     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1676   status=QueryMagickColor(color,&pixel,wand->exception);
1677   if (status != MagickFalse)
1678     wand->pixel=pixel;
1679   return(status);
1680 }
1681 \f
1682 /*
1683 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1684 %                                                                             %
1685 %                                                                             %
1686 %                                                                             %
1687 %   P i x e l S e t C o l o r C o u n t                                       %
1688 %                                                                             %
1689 %                                                                             %
1690 %                                                                             %
1691 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1692 %
1693 %  PixelSetColorCount() sets the color count of the pixel wand.
1694 %
1695 %  The format of the PixelSetColorCount method is:
1696 %
1697 %      void PixelSetColorCount(PixelWand *wand,const size_t count)
1698 %
1699 %  A description of each parameter follows:
1700 %
1701 %    o wand: the pixel wand.
1702 %
1703 %    o count: the number of this particular color.
1704 %
1705 */
1706 WandExport void PixelSetColorCount(PixelWand *wand,const size_t count)
1707 {
1708   assert(wand != (const PixelWand *) NULL);
1709   assert(wand->signature == WandSignature);
1710   if (wand->debug != MagickFalse)
1711     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1712   wand->count=count;
1713 }
1714 \f
1715 /*
1716 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1717 %                                                                             %
1718 %                                                                             %
1719 %                                                                             %
1720 %   P i x e l S e t C o l o r F r o m W a n d                                 %
1721 %                                                                             %
1722 %                                                                             %
1723 %                                                                             %
1724 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1725 %
1726 %  PixelSetColorFromWand() sets the color of the pixel wand.
1727 %
1728 %  The format of the PixelSetColorFromWand method is:
1729 %
1730 %      PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
1731 %
1732 %  A description of each parameter follows:
1733 %
1734 %    o wand: the pixel wand.
1735 %
1736 %    o color: set the pixel wand color here.
1737 %
1738 */
1739 WandExport void PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
1740 {
1741   assert(wand != (const PixelWand *) NULL);
1742   assert(wand->signature == WandSignature);
1743   if (wand->debug != MagickFalse)
1744     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1745   assert(color != (const PixelWand *) NULL);
1746   wand->pixel=color->pixel;
1747 }
1748 \f
1749 /*
1750 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1751 %                                                                             %
1752 %                                                                             %
1753 %                                                                             %
1754 %   P i x e l S e t C y a n                                                   %
1755 %                                                                             %
1756 %                                                                             %
1757 %                                                                             %
1758 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1759 %
1760 %  PixelSetCyan() sets the normalized cyan color of the pixel wand.
1761 %
1762 %  The format of the PixelSetCyan method is:
1763 %
1764 %      void PixelSetCyan(PixelWand *wand,const double cyan)
1765 %
1766 %  A description of each parameter follows:
1767 %
1768 %    o wand: the pixel wand.
1769 %
1770 %    o cyan: the cyan color.
1771 %
1772 */
1773 WandExport void PixelSetCyan(PixelWand *wand,const double cyan)
1774 {
1775   assert(wand != (const PixelWand *) NULL);
1776   assert(wand->signature == WandSignature);
1777   if (wand->debug != MagickFalse)
1778     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1779   wand->pixel.red=(MagickRealType) ClampToQuantum((MagickRealType)
1780     QuantumRange*cyan);
1781 }
1782 \f
1783 /*
1784 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1785 %                                                                             %
1786 %                                                                             %
1787 %                                                                             %
1788 %   P i x e l S e t C y a n Q u a n t u m                                     %
1789 %                                                                             %
1790 %                                                                             %
1791 %                                                                             %
1792 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1793 %
1794 %  PixelSetCyanQuantum() sets the cyan color of the pixel wand.
1795 %
1796 %  The format of the PixelSetCyanQuantum method is:
1797 %
1798 %      void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
1799 %
1800 %  A description of each parameter follows:
1801 %
1802 %    o wand: the pixel wand.
1803 %
1804 %    o cyan: the cyan color.
1805 %
1806 */
1807 WandExport void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
1808 {
1809   assert(wand != (const PixelWand *) NULL);
1810   assert(wand->signature == WandSignature);
1811   if (wand->debug != MagickFalse)
1812     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1813   wand->pixel.red=(MagickRealType) cyan;
1814 }
1815 \f
1816 /*
1817 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1818 %                                                                             %
1819 %                                                                             %
1820 %                                                                             %
1821 %   P i x e l S e t F u z z                                                   %
1822 %                                                                             %
1823 %                                                                             %
1824 %                                                                             %
1825 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1826 %
1827 %  PixelSetFuzz() sets the fuzz value of the pixel wand.
1828 %
1829 %  The format of the PixelSetFuzz method is:
1830 %
1831 %      void PixelSetFuzz(PixelWand *wand,const double fuzz)
1832 %
1833 %  A description of each parameter follows:
1834 %
1835 %    o wand: the pixel wand.
1836 %
1837 %    o fuzz: the fuzz value.
1838 %
1839 */
1840 WandExport void PixelSetFuzz(PixelWand *wand,const double fuzz)
1841 {
1842   assert(wand != (const PixelWand *) NULL);
1843   assert(wand->signature == WandSignature);
1844   if (wand->debug != MagickFalse)
1845     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1846   wand->pixel.fuzz=(MagickRealType) fuzz;
1847 }
1848 \f
1849 /*
1850 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1851 %                                                                             %
1852 %                                                                             %
1853 %                                                                             %
1854 %   P i x e l S e t G r e e n                                                 %
1855 %                                                                             %
1856 %                                                                             %
1857 %                                                                             %
1858 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1859 %
1860 %  PixelSetGreen() sets the normalized green color of the pixel wand.
1861 %
1862 %  The format of the PixelSetGreen method is:
1863 %
1864 %      void PixelSetGreen(PixelWand *wand,const double green)
1865 %
1866 %  A description of each parameter follows:
1867 %
1868 %    o wand: the pixel wand.
1869 %
1870 %    o green: the green color.
1871 %
1872 */
1873 WandExport void PixelSetGreen(PixelWand *wand,const double green)
1874 {
1875   assert(wand != (const PixelWand *) NULL);
1876   assert(wand->signature == WandSignature);
1877   if (wand->debug != MagickFalse)
1878     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1879   wand->pixel.green=(MagickRealType) ClampToQuantum((MagickRealType)
1880     QuantumRange*green);
1881 }
1882 \f
1883 /*
1884 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1885 %                                                                             %
1886 %                                                                             %
1887 %                                                                             %
1888 %   P i x e l S e t G r e e n Q u a n t u m                                   %
1889 %                                                                             %
1890 %                                                                             %
1891 %                                                                             %
1892 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1893 %
1894 %  PixelSetGreenQuantum() sets the green color of the pixel wand.
1895 %
1896 %  The format of the PixelSetGreenQuantum method is:
1897 %
1898 %      void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
1899 %
1900 %  A description of each parameter follows:
1901 %
1902 %    o wand: the pixel wand.
1903 %
1904 %    o green: the green color.
1905 %
1906 */
1907 WandExport void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
1908 {
1909   assert(wand != (const PixelWand *) NULL);
1910   assert(wand->signature == WandSignature);
1911   if (wand->debug != MagickFalse)
1912     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1913   wand->pixel.green=(MagickRealType) green;
1914 }
1915 \f
1916 /*
1917 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1918 %                                                                             %
1919 %                                                                             %
1920 %                                                                             %
1921 %   P i x e l S e t H S L                                                     %
1922 %                                                                             %
1923 %                                                                             %
1924 %                                                                             %
1925 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1926 %
1927 %  PixelSetHSL() sets the normalized HSL color of the pixel wand.
1928 %
1929 %  The format of the PixelSetHSL method is:
1930 %
1931 %      void PixelSetHSL(PixelWand *wand,const double hue,
1932 %        const double saturation,const double lightness)
1933 %
1934 %  A description of each parameter follows:
1935 %
1936 %    o wand: the pixel wand.
1937 %
1938 %    o hue,saturation,lightness: Return the pixel hue, saturation, and
1939 %      brightness.
1940 %
1941 */
1942 WandExport void PixelSetHSL(PixelWand *wand,const double hue,
1943   const double saturation,const double lightness)
1944 {
1945   Quantum
1946     blue,
1947     green,
1948     red;
1949
1950   assert(wand != (const PixelWand *) NULL);
1951   assert(wand->signature == WandSignature);
1952   if (wand->debug != MagickFalse)
1953     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1954   ConvertHSLToRGB(hue,saturation,lightness,&red,&green,&blue);
1955   wand->pixel.red=(MagickRealType) red;
1956   wand->pixel.green=(MagickRealType) green;
1957   wand->pixel.blue=(MagickRealType) blue;
1958 }
1959 \f
1960 /*
1961 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1962 %                                                                             %
1963 %                                                                             %
1964 %                                                                             %
1965 %   P i x e l S e t I n d e x                                                 %
1966 %                                                                             %
1967 %                                                                             %
1968 %                                                                             %
1969 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1970 %
1971 %  PixelSetIndex() sets the colormap index of the pixel wand.
1972 %
1973 %  The format of the PixelSetIndex method is:
1974 %
1975 %      void PixelSetIndex(PixelWand *wand,const IndexPacket index)
1976 %
1977 %  A description of each parameter follows:
1978 %
1979 %    o wand: the pixel wand.
1980 %
1981 %    o index: the colormap index.
1982 %
1983 */
1984 WandExport void PixelSetIndex(PixelWand *wand,const IndexPacket index)
1985 {
1986   assert(wand != (const PixelWand *) NULL);
1987   assert(wand->signature == WandSignature);
1988   if (wand->debug != MagickFalse)
1989     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1990   wand->pixel.index=(MagickRealType) index;
1991 }
1992 \f
1993 /*
1994 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1995 %                                                                             %
1996 %                                                                             %
1997 %                                                                             %
1998 %   P i x e l S e t M a g e n t a                                             %
1999 %                                                                             %
2000 %                                                                             %
2001 %                                                                             %
2002 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2003 %
2004 %  PixelSetMagenta() sets the normalized magenta color of the pixel wand.
2005 %
2006 %  The format of the PixelSetMagenta method is:
2007 %
2008 %      void PixelSetMagenta(PixelWand *wand,const double magenta)
2009 %
2010 %  A description of each parameter follows:
2011 %
2012 %    o wand: the pixel wand.
2013 %
2014 %    o magenta: the magenta color.
2015 %
2016 */
2017 WandExport void PixelSetMagenta(PixelWand *wand,const double magenta)
2018 {
2019   assert(wand != (const PixelWand *) NULL);
2020   assert(wand->signature == WandSignature);
2021   if (wand->debug != MagickFalse)
2022     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2023   wand->pixel.green=(MagickRealType) ClampToQuantum((MagickRealType)
2024     QuantumRange*magenta);
2025 }
2026 \f
2027 /*
2028 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2029 %                                                                             %
2030 %                                                                             %
2031 %                                                                             %
2032 %   P i x e l S e t M a g e n t a Q u a n t u m                               %
2033 %                                                                             %
2034 %                                                                             %
2035 %                                                                             %
2036 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2037 %
2038 %  PixelSetMagentaQuantum() sets the magenta color of the pixel wand.
2039 %
2040 %  The format of the PixelSetMagentaQuantum method is:
2041 %
2042 %      void PixelSetMagentaQuantum(PixelWand *wand,
2043 %        const Quantum magenta)
2044 %
2045 %  A description of each parameter follows:
2046 %
2047 %    o wand: the pixel wand.
2048 %
2049 %    o magenta: the green magenta.
2050 %
2051 */
2052 WandExport void PixelSetMagentaQuantum(PixelWand *wand,const Quantum magenta)
2053 {
2054   assert(wand != (const PixelWand *) NULL);
2055   assert(wand->signature == WandSignature);
2056   if (wand->debug != MagickFalse)
2057     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2058   wand->pixel.green=(MagickRealType) magenta;
2059 }
2060 \f
2061 /*
2062 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2063 %                                                                             %
2064 %                                                                             %
2065 %                                                                             %
2066 %   P i x e l S e t M a g i c k C o l o r                                     %
2067 %                                                                             %
2068 %                                                                             %
2069 %                                                                             %
2070 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2071 %
2072 %  PixelSetMagickColor() sets the color of the pixel wand.
2073 %
2074 %  The format of the PixelSetMagickColor method is:
2075 %
2076 %      PixelSetMagickColor(PixelWand *wand,const MagickPixelPacket *color)
2077 %
2078 %  A description of each parameter follows:
2079 %
2080 %    o wand: the pixel wand.
2081 %
2082 %    o color: the pixel wand color.
2083 %
2084 */
2085 WandExport void PixelSetMagickColor(PixelWand *wand,
2086   const MagickPixelPacket *color)
2087 {
2088   assert(wand != (const PixelWand *) NULL);
2089   assert(wand->signature == WandSignature);
2090   if (wand->debug != MagickFalse)
2091     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2092   assert(color != (const MagickPixelPacket *) NULL);
2093   wand->pixel=(*color);
2094 }
2095 \f
2096 /*
2097 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2098 %                                                                             %
2099 %                                                                             %
2100 %                                                                             %
2101 %   P i x e l S e t O p a c i t y                                             %
2102 %                                                                             %
2103 %                                                                             %
2104 %                                                                             %
2105 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2106 %
2107 %  PixelSetOpacity() sets the normalized opacity color of the pixel wand.
2108 %
2109 %  The format of the PixelSetOpacity method is:
2110 %
2111 %      void PixelSetOpacity(PixelWand *wand,const double opacity)
2112 %
2113 %  A description of each parameter follows:
2114 %
2115 %    o wand: the pixel wand.
2116 %
2117 %    o opacity: the opacity color.
2118 %
2119 */
2120 WandExport void PixelSetOpacity(PixelWand *wand,const double opacity)
2121 {
2122   assert(wand != (const PixelWand *) NULL);
2123   assert(wand->signature == WandSignature);
2124   if (wand->debug != MagickFalse)
2125     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2126   wand->pixel.matte=MagickTrue;
2127   wand->pixel.opacity=(MagickRealType) ClampToQuantum((MagickRealType)
2128     QuantumRange*opacity);
2129 }
2130 \f
2131 /*
2132 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2133 %                                                                             %
2134 %                                                                             %
2135 %                                                                             %
2136 %   P i x e l S e t O p a c i t y Q u a n t u m                               %
2137 %                                                                             %
2138 %                                                                             %
2139 %                                                                             %
2140 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2141 %
2142 %  PixelSetOpacityQuantum() sets the opacity color of the pixel wand.
2143 %
2144 %  The format of the PixelSetOpacityQuantum method is:
2145 %
2146 %      void PixelSetOpacityQuantum(PixelWand *wand,
2147 %        const Quantum opacity)
2148 %
2149 %  A description of each parameter follows:
2150 %
2151 %    o wand: the pixel wand.
2152 %
2153 %    o opacity: the opacity color.
2154 %
2155 */
2156 WandExport void PixelSetOpacityQuantum(PixelWand *wand,const Quantum opacity)
2157 {
2158   assert(wand != (const PixelWand *) NULL);
2159   assert(wand->signature == WandSignature);
2160   if (wand->debug != MagickFalse)
2161     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2162   wand->pixel.opacity=(MagickRealType) opacity;
2163 }
2164 \f
2165 /*
2166 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2167 %                                                                             %
2168 %                                                                             %
2169 %                                                                             %
2170 %   P i x e l S e t Q u a n t u m C o l o r                                   %
2171 %                                                                             %
2172 %                                                                             %
2173 %                                                                             %
2174 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2175 %
2176 %  PixelSetQuantumColor() sets the color of the pixel wand.
2177 %
2178 %  The format of the PixelSetQuantumColor method is:
2179 %
2180 %      PixelSetQuantumColor(PixelWand *wand,const PixelPacket *color)
2181 %
2182 %  A description of each parameter follows:
2183 %
2184 %    o wand: the pixel wand.
2185 %
2186 %    o color: the pixel wand color.
2187 %
2188 */
2189 WandExport void PixelSetQuantumColor(PixelWand *wand,const PixelPacket *color)
2190 {
2191   assert(wand != (const PixelWand *) NULL);
2192   assert(wand->signature == WandSignature);
2193   if (wand->debug != MagickFalse)
2194     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2195   assert(color != (PixelPacket *) NULL);
2196   wand->pixel.red=(MagickRealType) color->red;
2197   wand->pixel.green=(MagickRealType) color->green;
2198   wand->pixel.blue=(MagickRealType) color->blue;
2199   wand->pixel.opacity=(MagickRealType) color->opacity;
2200   wand->pixel.matte=color->opacity != OpaqueOpacity ? MagickTrue : MagickFalse;
2201 }
2202 \f
2203 /*
2204 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2205 %                                                                             %
2206 %                                                                             %
2207 %                                                                             %
2208 %   P i x e l S e t R e d                                                     %
2209 %                                                                             %
2210 %                                                                             %
2211 %                                                                             %
2212 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2213 %
2214 %  PixelSetRed() sets the normalized red color of the pixel wand.
2215 %
2216 %  The format of the PixelSetRed method is:
2217 %
2218 %      void PixelSetRed(PixelWand *wand,const double red)
2219 %
2220 %  A description of each parameter follows:
2221 %
2222 %    o wand: the pixel wand.
2223 %
2224 %    o red: the red color.
2225 %
2226 */
2227 WandExport void PixelSetRed(PixelWand *wand,const double red)
2228 {
2229   assert(wand != (const PixelWand *) NULL);
2230   assert(wand->signature == WandSignature);
2231   if (wand->debug != MagickFalse)
2232     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2233   wand->pixel.red=(MagickRealType) ClampToQuantum((MagickRealType)
2234     QuantumRange*red);
2235 }
2236 \f
2237 /*
2238 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2239 %                                                                             %
2240 %                                                                             %
2241 %                                                                             %
2242 %   P i x e l S e t R e d Q u a n t u m                                       %
2243 %                                                                             %
2244 %                                                                             %
2245 %                                                                             %
2246 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2247 %
2248 %  PixelSetRedQuantum() sets the red color of the pixel wand.
2249 %
2250 %  The format of the PixelSetRedQuantum method is:
2251 %
2252 %      void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
2253 %
2254 %  A description of each parameter follows:
2255 %
2256 %    o wand: the pixel wand.
2257 %
2258 %    o red: the red color.
2259 %
2260 */
2261 WandExport void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
2262 {
2263   assert(wand != (const PixelWand *) NULL);
2264   assert(wand->signature == WandSignature);
2265   if (wand->debug != MagickFalse)
2266     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2267   wand->pixel.red=(MagickRealType) red;
2268 }
2269 \f
2270 /*
2271 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2272 %                                                                             %
2273 %                                                                             %
2274 %                                                                             %
2275 %   P i x e l S e t Y e l l o w                                               %
2276 %                                                                             %
2277 %                                                                             %
2278 %                                                                             %
2279 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2280 %
2281 %  PixelSetYellow() sets the normalized yellow color of the pixel wand.
2282 %
2283 %  The format of the PixelSetYellow method is:
2284 %
2285 %      void PixelSetYellow(PixelWand *wand,const double yellow)
2286 %
2287 %  A description of each parameter follows:
2288 %
2289 %    o wand: the pixel wand.
2290 %
2291 %    o yellow: the yellow color.
2292 %
2293 */
2294 WandExport void PixelSetYellow(PixelWand *wand,const double yellow)
2295 {
2296   assert(wand != (const PixelWand *) NULL);
2297   assert(wand->signature == WandSignature);
2298   if (wand->debug != MagickFalse)
2299     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2300   wand->pixel.blue=(MagickRealType) ClampToQuantum((MagickRealType)
2301     QuantumRange*yellow);
2302 }
2303 \f
2304 /*
2305 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2306 %                                                                             %
2307 %                                                                             %
2308 %                                                                             %
2309 %   P i x e l S e t Y e l l o w Q u a n t u m                                 %
2310 %                                                                             %
2311 %                                                                             %
2312 %                                                                             %
2313 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2314 %
2315 %  PixelSetYellowQuantum() sets the yellow color of the pixel wand.
2316 %
2317 %  The format of the PixelSetYellowQuantum method is:
2318 %
2319 %      void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
2320 %
2321 %  A description of each parameter follows:
2322 %
2323 %    o wand: the pixel wand.
2324 %
2325 %    o yellow: the yellow color.
2326 %
2327 */
2328 WandExport void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
2329 {
2330   assert(wand != (const PixelWand *) NULL);
2331   assert(wand->signature == WandSignature);
2332   if (wand->debug != MagickFalse)
2333     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2334   wand->pixel.blue=(MagickRealType) yellow;
2335 }