blob: 16d04c757e47005faa9d00bf7d1ff48ed18014a4 [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001/*
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% %
cristy7e41fe82010-12-04 23:12:08 +000026% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization %
cristy3ed852e2009-09-05 21:47:34 +000027% dedicated to making software imaging solutions freely available. %
28% %
29% You may not use this file except in compliance with the License. You may %
30% obtain a copy of the License at %
31% %
32% http://www.imagemagick.org/script/license.php %
33% %
34% Unless required by applicable law or agreed to in writing, software %
35% distributed under the License is distributed on an "AS IS" BASIS, %
36% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
37% See the License for the specific language governing permissions and %
38% limitations under the License. %
39% %
40%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
41%
42%
43%
44*/
45
46/*
47 Include declarations.
48*/
49#include "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
55/*
56 Define declarations.
57*/
58#define PixelWandId "PixelWand"
59
60/*
61 Typedef declarations.
62*/
63struct _PixelWand
64{
cristybb503372010-05-27 20:51:26 +000065 size_t
cristy3ed852e2009-09-05 21:47:34 +000066 id;
67
68 char
69 name[MaxTextExtent];
70
71 ExceptionInfo
72 *exception;
73
74 MagickPixelPacket
75 pixel;
76
cristybb503372010-05-27 20:51:26 +000077 size_t
cristy3ed852e2009-09-05 21:47:34 +000078 count;
79
80 MagickBooleanType
81 debug;
82
cristybb503372010-05-27 20:51:26 +000083 size_t
cristy3ed852e2009-09-05 21:47:34 +000084 signature;
85};
86
87/*
88%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
89% %
90% %
91% %
92% C l e a r P i x e l W a n d %
93% %
94% %
95% %
96%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97%
98% ClearPixelWand() clears resources associated with the wand.
99%
100% The format of the ClearPixelWand method is:
101%
102% void ClearPixelWand(PixelWand *wand)
103%
104% A description of each parameter follows:
105%
106% o wand: the pixel wand.
107%
108*/
109WandExport void ClearPixelWand(PixelWand *wand)
110{
111 assert(wand != (PixelWand *) NULL);
112 assert(wand->signature == 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
120/*
121%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
122% %
123% %
124% %
125% C l o n e P i x e l W a n d %
126% %
127% %
128% %
129%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
130%
131% ClonePixelWand() makes an exact copy of the specified wand.
132%
133% The format of the ClonePixelWand method is:
134%
135% PixelWand *ClonePixelWand(const PixelWand *wand)
136%
137% A description of each parameter follows:
138%
139% o wand: the magick wand.
140%
141*/
142WandExport PixelWand *ClonePixelWand(const PixelWand *wand)
143{
144 PixelWand
145 *clone_wand;
146
147 assert(wand != (PixelWand *) NULL);
148 assert(wand->signature == WandSignature);
149 if (wand->debug != MagickFalse)
150 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy73bd4a52010-10-05 11:24:23 +0000151 clone_wand=(PixelWand *) AcquireMagickMemory(sizeof(*clone_wand));
cristy3ed852e2009-09-05 21:47:34 +0000152 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();
cristye8c25f92010-06-03 00:53:06 +0000157 (void) FormatMagickString(clone_wand->name,MaxTextExtent,"%s-%.20g",
158 PixelWandId,(double) clone_wand->id);
cristy3ed852e2009-09-05 21:47:34 +0000159 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
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,
cristybb503372010-05-27 20:51:26 +0000186% const size_t number_wands)
cristy3ed852e2009-09-05 21:47:34 +0000187%
188% A description of each parameter follows:
189%
190% o wands: the magick wands.
191%
192% o number_wands: the number of wands.
193%
194*/
195WandExport PixelWand **ClonePixelWands(const PixelWand **wands,
cristybb503372010-05-27 20:51:26 +0000196 const size_t number_wands)
cristy3ed852e2009-09-05 21:47:34 +0000197{
cristybb503372010-05-27 20:51:26 +0000198 register ssize_t
cristy3ed852e2009-09-05 21:47:34 +0000199 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));
cristybb503372010-05-27 20:51:26 +0000209 for (i=0; i < (ssize_t) number_wands; i++)
cristy3ed852e2009-09-05 21:47:34 +0000210 clone_wands[i]=ClonePixelWand(wands[i]);
211 return(clone_wands);
212}
213
214/*
215%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
216% %
217% %
218% %
219% D e s t r o y P i x e l W a n d %
220% %
221% %
222% %
223%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
224%
225% DestroyPixelWand() deallocates resources associated with a PixelWand.
226%
227% The format of the DestroyPixelWand method is:
228%
229% PixelWand *DestroyPixelWand(PixelWand *wand)
230%
231% A description of each parameter follows:
232%
233% o wand: the pixel wand.
234%
235*/
236WandExport PixelWand *DestroyPixelWand(PixelWand *wand)
237{
238 assert(wand != (PixelWand *) NULL);
239 assert(wand->signature == 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
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,
cristybb503372010-05-27 20:51:26 +0000266% const size_t number_wands)
cristy3ed852e2009-09-05 21:47:34 +0000267%
268% A description of each parameter follows:
269%
270% o wand: the pixel wand.
271%
272% o number_wands: the number of wands.
273%
274*/
275WandExport PixelWand **DestroyPixelWands(PixelWand **wand,
cristybb503372010-05-27 20:51:26 +0000276 const size_t number_wands)
cristy3ed852e2009-09-05 21:47:34 +0000277{
cristybb503372010-05-27 20:51:26 +0000278 register ssize_t
cristy3ed852e2009-09-05 21:47:34 +0000279 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);
cristybb503372010-05-27 20:51:26 +0000286 for (i=(ssize_t) number_wands-1; i >= 0; i--)
cristy3ed852e2009-09-05 21:47:34 +0000287 wand[i]=DestroyPixelWand(wand[i]);
288 wand=(PixelWand **) RelinquishMagickMemory(wand);
289 return(wand);
290}
291
292/*
293%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
294% %
295% %
296% %
297% I s P i x e l W a n d S i m i l a r %
298% %
299% %
300% %
301%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
302%
303% IsPixelWandSimilar() returns MagickTrue if the distance between two
304% colors is less than the specified distance.
305%
306% The format of the IsPixelWandSimilar method is:
307%
308% MagickBooleanType IsPixelWandSimilar(PixelWand *p,PixelWand *q,
309% const double fuzz)
310%
311% A description of each parameter follows:
312%
313% o p: the pixel wand.
314%
315% o q: the pixel wand.
316%
317% o fuzz: any two colors that are less than or equal to this distance
318% squared are consider similar.
319%
320*/
321WandExport MagickBooleanType IsPixelWandSimilar(PixelWand *p,PixelWand *q,
322 const double fuzz)
323{
324 assert(p != (PixelWand *) NULL);
325 assert(p->signature == 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
337/*
338%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
339% %
340% %
341% %
342% I s P i x e l W a n d %
343% %
344% %
345% %
346%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
347%
348% IsPixelWand() returns MagickTrue if the wand is verified as a pixel wand.
349%
350% The format of the IsPixelWand method is:
351%
352% MagickBooleanType IsPixelWand(const PixelWand *wand)
353%
354% A description of each parameter follows:
355%
356% o wand: the magick wand.
357%
358*/
359WandExport MagickBooleanType IsPixelWand(const PixelWand *wand)
360{
361 if (wand == (const PixelWand *) NULL)
362 return(MagickFalse);
363 if (wand->signature != WandSignature)
364 return(MagickFalse);
365 if (LocaleNCompare(wand->name,PixelWandId,strlen(PixelWandId)) != 0)
366 return(MagickFalse);
367 return(MagickTrue);
368}
369
370/*
371%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
372% %
373% %
374% %
375% N e w P i x e l W a n d %
376% %
377% %
378% %
379%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
380%
381% NewPixelWand() returns a new pixel wand.
382%
383% The format of the NewPixelWand method is:
384%
385% PixelWand *NewPixelWand(void)
386%
387*/
388WandExport PixelWand *NewPixelWand(void)
389{
390 const char
391 *quantum;
392
393 PixelWand
394 *wand;
395
cristybb503372010-05-27 20:51:26 +0000396 size_t
cristy3ed852e2009-09-05 21:47:34 +0000397 depth;
398
399 depth=MAGICKCORE_QUANTUM_DEPTH;
400 quantum=GetMagickQuantumDepth(&depth);
401 if (depth != MAGICKCORE_QUANTUM_DEPTH)
402 ThrowWandFatalException(WandError,"QuantumDepthMismatch",quantum);
cristy73bd4a52010-10-05 11:24:23 +0000403 wand=(PixelWand *) AcquireMagickMemory(sizeof(*wand));
cristy3ed852e2009-09-05 21:47:34 +0000404 if (wand == (PixelWand *) NULL)
405 ThrowWandFatalException(ResourceLimitFatalError,"MemoryAllocationFailed",
406 GetExceptionMessage(errno));
407 (void) ResetMagickMemory(wand,0,sizeof(*wand));
408 wand->id=AcquireWandId();
cristye8c25f92010-06-03 00:53:06 +0000409 (void) FormatMagickString(wand->name,MaxTextExtent,"%s-%.20g",PixelWandId,
410 (double) wand->id);
cristy3ed852e2009-09-05 21:47:34 +0000411 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
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%
cristybb503372010-05-27 20:51:26 +0000435% PixelWand **NewPixelWands(const size_t number_wands)
cristy3ed852e2009-09-05 21:47:34 +0000436%
437% A description of each parameter follows:
438%
439% o number_wands: the number of wands.
440%
441*/
cristybb503372010-05-27 20:51:26 +0000442WandExport PixelWand **NewPixelWands(const size_t number_wands)
cristy3ed852e2009-09-05 21:47:34 +0000443{
cristybb503372010-05-27 20:51:26 +0000444 register ssize_t
cristy3ed852e2009-09-05 21:47:34 +0000445 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));
cristybb503372010-05-27 20:51:26 +0000455 for (i=0; i < (ssize_t) number_wands; i++)
cristy3ed852e2009-09-05 21:47:34 +0000456 wands[i]=NewPixelWand();
457 return(wands);
458}
459
460/*
461%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
462% %
463% %
464% %
465% P i x e l C l e a r E x c e p t i o n %
466% %
467% %
468% %
469%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
470%
471% PixelClearException() clear any exceptions associated with the iterator.
472%
473% The format of the PixelClearException method is:
474%
475% MagickBooleanType PixelClearException(PixelWand *wand)
476%
477% A description of each parameter follows:
478%
479% o wand: the pixel wand.
480%
481*/
482WandExport MagickBooleanType PixelClearException(PixelWand *wand)
483{
484 assert(wand != (PixelWand *) NULL);
485 assert(wand->signature == WandSignature);
486 if (wand->debug != MagickFalse)
487 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
488 ClearMagickException(wand->exception);
489 return(MagickTrue);
490}
491
492/*
493%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
494% %
495% %
496% %
497% P i x e l G e t A l p h a %
498% %
499% %
500% %
501%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
502%
503% PixelGetAlpha() returns the normalized alpha 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*/
514WandExport 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
523/*
524%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
525% %
526% %
527% %
528% P i x e l G e t A l p h a Q u a n t u m %
529% %
530% %
531% %
532%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
533%
534% PixelGetAlphaQuantum() returns the alpha value of the pixel wand.
535%
536% The format of the PixelGetAlphaQuantum method is:
537%
538% Quantum PixelGetAlphaQuantum(const PixelWand *wand)
539%
540% A description of each parameter follows:
541%
542% o wand: the pixel wand.
543%
544*/
545WandExport Quantum PixelGetAlphaQuantum(const PixelWand *wand)
546{
547 assert(wand != (const PixelWand *) NULL);
548 assert(wand->signature == WandSignature);
549 if (wand->debug != MagickFalse)
550 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +0000551 return((Quantum) QuantumRange-ClampToQuantum(wand->pixel.opacity));
cristy3ed852e2009-09-05 21:47:34 +0000552}
553
554/*
555%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
556% %
557% %
558% %
559% P i x e l G e t B l a c k %
560% %
561% %
562% %
563%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
564%
565% PixelGetBlack() returns the normalized black color of the pixel wand.
566%
567% The format of the PixelGetBlack method is:
568%
569% double PixelGetBlack(const PixelWand *wand)
570%
571% A description of each parameter follows:
572%
573% o wand: the pixel wand.
574%
575*/
576WandExport double PixelGetBlack(const PixelWand *wand)
577{
578 assert(wand != (const PixelWand *) NULL);
579 assert(wand->signature == WandSignature);
580 if (wand->debug != MagickFalse)
581 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
582 return((double) QuantumScale*wand->pixel.index);
583}
584
585/*
586%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
587% %
588% %
589% %
590% P i x e l G e t B l a c k Q u a n t u m %
591% %
592% %
593% %
594%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
595%
596% PixelGetBlackQuantum() returns the black color of the pixel wand.
597%
598% The format of the PixelGetBlackQuantum method is:
599%
600% Quantum PixelGetBlackQuantum(const PixelWand *wand)
601%
602% A description of each parameter follows:
603%
604% o wand: the pixel wand.
605%
606*/
607WandExport Quantum PixelGetBlackQuantum(const PixelWand *wand)
608{
609 assert(wand != (const PixelWand *) NULL);
610 assert(wand->signature == WandSignature);
611 if (wand->debug != MagickFalse)
612 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +0000613 return(ClampToQuantum(wand->pixel.index));
cristy3ed852e2009-09-05 21:47:34 +0000614}
615
616/*
617%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618% %
619% %
620% %
621% P i x e l G e t B l u e %
622% %
623% %
624% %
625%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
626%
627% PixelGetBlue() returns the normalized blue color of the pixel wand.
628%
629% The format of the PixelGetBlue method is:
630%
631% double PixelGetBlue(const PixelWand *wand)
632%
633% A description of each parameter follows:
634%
635% o wand: the pixel wand.
636%
637*/
638WandExport double PixelGetBlue(const PixelWand *wand)
639{
640 assert(wand != (const PixelWand *) NULL);
641 assert(wand->signature == WandSignature);
642 if (wand->debug != MagickFalse)
643 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
644 return((double) QuantumScale*wand->pixel.blue);
645}
646
647/*
648%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
649% %
650% %
651% %
652% P i x e l G e t B l u e Q u a n t u m %
653% %
654% %
655% %
656%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
657%
658% PixelGetBlueQuantum() returns the blue color of the pixel wand.
659%
660% The format of the PixelGetBlueQuantum method is:
661%
662% Quantum PixelGetBlueQuantum(const PixelWand *wand)
663%
664% A description of each parameter follows:
665%
666% o wand: the pixel wand.
667%
668*/
669WandExport Quantum PixelGetBlueQuantum(const PixelWand *wand)
670{
671 assert(wand != (const PixelWand *) NULL);
672 assert(wand->signature == WandSignature);
673 if (wand->debug != MagickFalse)
674 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +0000675 return(ClampToQuantum(wand->pixel.blue));
cristy3ed852e2009-09-05 21:47:34 +0000676}
677
678/*
679%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
680% %
681% %
682% %
683% P i x e l G e t C o l o r A s S t r i n g %
684% %
685% %
686% %
687%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
688%
689% PixelGetColorAsString() returnsd the color of the pixel wand as a string.
690%
691% The format of the PixelGetColorAsString method is:
692%
693% char *PixelGetColorAsString(PixelWand *wand)
694%
695% A description of each parameter follows:
696%
697% o wand: the pixel wand.
698%
699*/
700WandExport char *PixelGetColorAsString(const PixelWand *wand)
701{
702 char
703 *color;
704
705 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
718/*
719%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
720% %
721% %
722% %
723% P i x e l G e t C o l o r A s N o r m a l i z e d S t r i n g %
724% %
725% %
726% %
727%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
728%
729% PixelGetColorAsNormalizedString() returns the normalized color of the pixel
730% wand as a string.
731%
732% The format of the PixelGetColorAsNormalizedString method is:
733%
734% char *PixelGetColorAsNormalizedString(PixelWand *wand)
735%
736% A description of each parameter follows:
737%
738% o wand: the pixel wand.
739%
740*/
741WandExport char *PixelGetColorAsNormalizedString(const PixelWand *wand)
742{
743 char
744 color[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);
cristye7f51092010-01-17 00:39:37 +0000750 (void) FormatMagickString(color,MaxTextExtent,"%g,%g,%g",
cristy3ed852e2009-09-05 21:47:34 +0000751 (double) (QuantumScale*wand->pixel.red),
752 (double) (QuantumScale*wand->pixel.green),
753 (double) (QuantumScale*wand->pixel.blue));
754 if (wand->pixel.colorspace == CMYKColorspace)
cristye7f51092010-01-17 00:39:37 +0000755 (void) FormatMagickString(color+strlen(color),MaxTextExtent,",%g",
cristy3ed852e2009-09-05 21:47:34 +0000756 (double) (QuantumScale*wand->pixel.index));
757 if (wand->pixel.matte != MagickFalse)
cristye7f51092010-01-17 00:39:37 +0000758 (void) FormatMagickString(color+strlen(color),MaxTextExtent,",%g",
cristy3ed852e2009-09-05 21:47:34 +0000759 (double) (QuantumScale*wand->pixel.opacity));
760 return(ConstantString(color));
761}
762
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%
cristybb503372010-05-27 20:51:26 +0000778% size_t PixelGetColorCount(const PixelWand *wand)
cristy3ed852e2009-09-05 21:47:34 +0000779%
780% A description of each parameter follows:
781%
782% o wand: the pixel wand.
783%
784*/
cristybb503372010-05-27 20:51:26 +0000785WandExport size_t PixelGetColorCount(const PixelWand *wand)
cristy3ed852e2009-09-05 21:47:34 +0000786{
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
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*/
816WandExport 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
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*/
847WandExport 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);
cristyce70c172010-01-07 17:15:30 +0000853 return(ClampToQuantum(wand->pixel.red));
cristy3ed852e2009-09-05 21:47:34 +0000854}
855
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*/
881WandExport 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
912/*
913%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
914% %
915% %
916% %
917% P i x e l G e t E x c e p t i o n T y p e %
918% %
919% %
920% %
921%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
922%
923% PixelGetExceptionType() the exception type associated with the wand. If
924% no exception has occurred, UndefinedExceptionType is returned.
925%
926% The format of the PixelGetExceptionType method is:
927%
928% ExceptionType PixelGetExceptionType(const PixelWand *wand)
929%
930% A description of each parameter follows:
931%
932% o wand: the magick wand.
933%
934*/
935WandExport ExceptionType PixelGetExceptionType(const PixelWand *wand)
936{
937 assert(wand != (const PixelWand *) NULL);
938 assert(wand->signature == WandSignature);
939 if (wand->debug != MagickFalse)
940 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
941 return(wand->exception->severity);
942}
943
944/*
945%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
946% %
947% %
948% %
949% P i x e l G e t F u z z %
950% %
951% %
952% %
953%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
954%
955% PixelGetFuzz() returns the normalized fuzz value of the pixel wand.
956%
957% The format of the PixelGetFuzz method is:
958%
959% double PixelGetFuzz(const PixelWand *wand)
960%
961% A description of each parameter follows:
962%
963% o wand: the pixel wand.
964%
965*/
966WandExport double PixelGetFuzz(const PixelWand *wand)
967{
968 assert(wand != (const PixelWand *) NULL);
969 assert(wand->signature == WandSignature);
970 if (wand->debug != MagickFalse)
971 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
972 return((double) wand->pixel.fuzz);
973}
974
975/*
976%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
977% %
978% %
979% %
980% P i x e l G e t G r e e n %
981% %
982% %
983% %
984%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
985%
986% PixelGetGreen() returns the normalized green color of the pixel wand.
987%
988% The format of the PixelGetGreen method is:
989%
990% double PixelGetGreen(const PixelWand *wand)
991%
992% A description of each parameter follows:
993%
994% o wand: the pixel wand.
995%
996*/
997WandExport double PixelGetGreen(const PixelWand *wand)
998{
999 assert(wand != (const PixelWand *) NULL);
1000 assert(wand->signature == WandSignature);
1001 if (wand->debug != MagickFalse)
1002 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1003 return((double) QuantumScale*wand->pixel.green);
1004}
1005
1006/*
1007%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1008% %
1009% %
1010% %
1011% P i x e l G e t G r e e n Q u a n t u m %
1012% %
1013% %
1014% %
1015%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1016%
1017% PixelGetGreenQuantum() returns the green color of the pixel wand.
1018%
1019% The format of the PixelGetGreenQuantum method is:
1020%
1021% Quantum PixelGetGreenQuantum(const PixelWand *wand)
1022%
1023% A description of each parameter follows:
1024%
1025% o wand: the pixel wand.
1026%
1027*/
1028WandExport Quantum PixelGetGreenQuantum(const PixelWand *wand)
1029{
1030 assert(wand != (const PixelWand *) NULL);
1031 assert(wand->signature == WandSignature);
1032 if (wand->debug != MagickFalse)
1033 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001034 return(ClampToQuantum(wand->pixel.green));
cristy3ed852e2009-09-05 21:47:34 +00001035}
1036
1037/*
1038%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1039% %
1040% %
1041% %
1042% P i x e l G e t H S L %
1043% %
1044% %
1045% %
1046%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1047%
1048% PixelGetHSL() returns the normalized HSL color of the pixel wand.
1049%
1050% The format of the PixelGetHSL method is:
1051%
1052% void PixelGetHSL(const PixelWand *wand,double *hue,double *saturation,
1053% double *lightness)
1054%
1055% A description of each parameter follows:
1056%
1057% o wand: the pixel wand.
1058%
1059% o hue,saturation,lightness: Return the pixel hue, saturation, and
1060% brightness.
1061%
1062*/
1063WandExport void PixelGetHSL(const PixelWand *wand,double *hue,
1064 double *saturation,double *lightness)
1065{
1066 assert(wand != (const PixelWand *) NULL);
1067 assert(wand->signature == WandSignature);
1068 if (wand->debug != MagickFalse)
1069 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001070 ConvertRGBToHSL(ClampToQuantum(wand->pixel.red),ClampToQuantum(
1071 wand->pixel.green),ClampToQuantum(wand->pixel.blue),hue,saturation,
cristy3ed852e2009-09-05 21:47:34 +00001072 lightness);
1073}
1074
1075/*
1076%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1077% %
1078% %
1079% %
1080% P i x e l G e t I n d e x %
1081% %
1082% %
1083% %
1084%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1085%
1086% PixelGetIndex() returns the colormap index from the pixel wand.
1087%
1088% The format of the PixelGetIndex method is:
1089%
1090% IndexPacket PixelGetIndex(const PixelWand *wand)
1091%
1092% A description of each parameter follows:
1093%
1094% o wand: the pixel wand.
1095%
1096*/
1097WandExport 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
1106/*
1107%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1108% %
1109% %
1110% %
1111% P i x e l G e t M a g e n t a %
1112% %
1113% %
1114% %
1115%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1116%
1117% PixelGetMagenta() returns the normalized magenta color of the pixel wand.
1118%
1119% The format of the PixelGetMagenta method is:
1120%
1121% double PixelGetMagenta(const PixelWand *wand)
1122%
1123% A description of each parameter follows:
1124%
1125% o wand: the pixel wand.
1126%
1127*/
1128WandExport double PixelGetMagenta(const PixelWand *wand)
1129{
1130 assert(wand != (const PixelWand *) NULL);
1131 assert(wand->signature == WandSignature);
1132 if (wand->debug != MagickFalse)
1133 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1134 return((double) QuantumScale*wand->pixel.green);
1135}
1136
1137/*
1138%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1139% %
1140% %
1141% %
1142% P i x e l G e t M a g e n t a Q u a n t u m %
1143% %
1144% %
1145% %
1146%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1147%
1148% PixelGetMagentaQuantum() returns the magenta color of the pixel wand.
1149%
1150% The format of the PixelGetMagentaQuantum method is:
1151%
1152% Quantum PixelGetMagentaQuantum(const PixelWand *wand)
1153%
1154% A description of each parameter follows:
1155%
1156% o wand: the pixel wand.
1157%
1158*/
1159WandExport Quantum PixelGetMagentaQuantum(const PixelWand *wand)
1160{
1161 assert(wand != (const PixelWand *) NULL);
1162 assert(wand->signature == WandSignature);
1163 if (wand->debug != MagickFalse)
1164 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001165 return(ClampToQuantum(wand->pixel.green));
cristy3ed852e2009-09-05 21:47:34 +00001166}
1167
1168/*
1169%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1170% %
1171% %
1172% %
1173+ P i x e l G e t M a g i c k C o l o r %
1174% %
1175% %
1176% %
1177%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1178%
1179% PixelGetMagickColor() gets the magick color of the pixel wand.
1180%
1181% The format of the PixelGetMagickColor method is:
1182%
1183% void PixelGetMagickColor(PixelWand *wand,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*/
1192WandExport 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
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*/
1225WandExport 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
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*/
1256WandExport 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);
cristyce70c172010-01-07 17:15:30 +00001262 return(ClampToQuantum(wand->pixel.opacity));
cristy3ed852e2009-09-05 21:47:34 +00001263}
1264
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*/
1289WandExport 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);
cristyce70c172010-01-07 17:15:30 +00001296 color->opacity=ClampToQuantum(wand->pixel.opacity);
cristy3ed852e2009-09-05 21:47:34 +00001297 if (wand->pixel.colorspace == CMYKColorspace)
1298 {
cristyce70c172010-01-07 17:15:30 +00001299 color->red=ClampToQuantum((MagickRealType) QuantumRange-
cristy3ed852e2009-09-05 21:47:34 +00001300 (wand->pixel.red*(QuantumRange-wand->pixel.index)+wand->pixel.index));
cristyce70c172010-01-07 17:15:30 +00001301 color->green=ClampToQuantum((MagickRealType) QuantumRange-
cristy3ed852e2009-09-05 21:47:34 +00001302 (wand->pixel.green*(QuantumRange-wand->pixel.index)+wand->pixel.index));
cristyce70c172010-01-07 17:15:30 +00001303 color->blue=ClampToQuantum((MagickRealType) QuantumRange-
cristy3ed852e2009-09-05 21:47:34 +00001304 (wand->pixel.blue*(QuantumRange-wand->pixel.index)+wand->pixel.index));
1305 return;
1306 }
cristyce70c172010-01-07 17:15:30 +00001307 color->red=ClampToQuantum(wand->pixel.red);
1308 color->green=ClampToQuantum(wand->pixel.green);
1309 color->blue=ClampToQuantum(wand->pixel.blue);
cristy3ed852e2009-09-05 21:47:34 +00001310}
1311
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*/
1334WandExport 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
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*/
1365WandExport 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);
cristyce70c172010-01-07 17:15:30 +00001371 return(ClampToQuantum(wand->pixel.red));
cristy3ed852e2009-09-05 21:47:34 +00001372}
1373
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*/
1396WandExport 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
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*/
1427WandExport 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);
cristyce70c172010-01-07 17:15:30 +00001433 return(ClampToQuantum(wand->pixel.blue));
cristy3ed852e2009-09-05 21:47:34 +00001434}
1435
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*/
1461WandExport 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-
cristyce70c172010-01-07 17:15:30 +00001468 ClampToQuantum((MagickRealType) QuantumRange*alpha));
cristy3ed852e2009-09-05 21:47:34 +00001469}
1470
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*/
1496WandExport 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
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*/
1529WandExport 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);
cristyce70c172010-01-07 17:15:30 +00001535 wand->pixel.index=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001536 QuantumRange*black);
1537}
1538
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*/
1563WandExport 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
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*/
1596WandExport 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);
cristyce70c172010-01-07 17:15:30 +00001602 wand->pixel.blue=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001603 QuantumRange*blue);
1604}
1605
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*/
1630WandExport 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
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*/
1664WandExport 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
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%
cristybb503372010-05-27 20:51:26 +00001697% void PixelSetColorCount(PixelWand *wand,const size_t count)
cristy3ed852e2009-09-05 21:47:34 +00001698%
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*/
cristybb503372010-05-27 20:51:26 +00001706WandExport void PixelSetColorCount(PixelWand *wand,const size_t count)
cristy3ed852e2009-09-05 21:47:34 +00001707{
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
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*/
1739WandExport 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
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*/
1773WandExport 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);
cristyce70c172010-01-07 17:15:30 +00001779 wand->pixel.red=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001780 QuantumRange*cyan);
1781}
1782
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*/
1807WandExport 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
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*/
1840WandExport 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
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*/
1873WandExport 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);
cristyce70c172010-01-07 17:15:30 +00001879 wand->pixel.green=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001880 QuantumRange*green);
1881}
1882
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*/
1907WandExport 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
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*/
1942WandExport 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
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*/
1984WandExport 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
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*/
2017WandExport 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);
cristyce70c172010-01-07 17:15:30 +00002023 wand->pixel.green=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002024 QuantumRange*magenta);
2025}
2026
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*/
2052WandExport 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
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*/
2085WandExport 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
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*/
2120WandExport 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;
cristyce70c172010-01-07 17:15:30 +00002127 wand->pixel.opacity=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002128 QuantumRange*opacity);
2129}
2130
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*/
2156WandExport 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
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*/
2189WandExport 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
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*/
2227WandExport 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);
cristyce70c172010-01-07 17:15:30 +00002233 wand->pixel.red=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002234 QuantumRange*red);
2235}
2236
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*/
2261WandExport 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
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*/
2294WandExport 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);
cristyce70c172010-01-07 17:15:30 +00002300 wand->pixel.blue=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002301 QuantumRange*yellow);
2302}
2303
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*/
2328WandExport 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}