blob: 0d6c6e64d2de5103b361e9df571e266d2d9ff825 [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*/
cristy4c08aed2011-07-01 19:47:50 +000049#include "MagickWand/studio.h"
50#include "MagickWand/MagickWand.h"
51#include "MagickWand/magick-wand-private.h"
52#include "MagickWand/pixel-wand-private.h"
53#include "MagickWand/wand.h"
cristy3ed852e2009-09-05 21:47:34 +000054
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
cristy4c08aed2011-07-01 19:47:50 +000074 PixelInfo
cristy3ed852e2009-09-05 21:47:34 +000075 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();
cristyb51dff52011-05-19 16:55:47 +0000157 (void) FormatLocaleString(clone_wand->name,MaxTextExtent,"%s-%.20g",
cristye8c25f92010-06-03 00:53:06 +0000158 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;
cristy4c08aed2011-07-01 19:47:50 +0000334 return(IsFuzzyEquivalencePixelInfo(&p->pixel,&q->pixel));
cristy3ed852e2009-09-05 21:47:34 +0000335}
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();
cristyb51dff52011-05-19 16:55:47 +0000409 (void) FormatLocaleString(wand->name,MaxTextExtent,"%s-%.20g",PixelWandId,
cristye8c25f92010-06-03 00:53:06 +0000410 (double) wand->id);
cristy3ed852e2009-09-05 21:47:34 +0000411 wand->exception=AcquireExceptionInfo();
cristy4c08aed2011-07-01 19:47:50 +0000412 GetPixelInfo((Image *) NULL,&wand->pixel);
cristy3ed852e2009-09-05 21:47:34 +0000413 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);
cristy4c08aed2011-07-01 19:47:50 +0000520 return((double) QuantumScale*wand->pixel.alpha);
cristy3ed852e2009-09-05 21:47:34 +0000521}
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);
cristy4c08aed2011-07-01 19:47:50 +0000551 return(ClampToQuantum(wand->pixel.alpha));
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);
cristy4c08aed2011-07-01 19:47:50 +0000582 return((double) QuantumScale*wand->pixel.black);
cristy3ed852e2009-09-05 21:47:34 +0000583}
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);
cristy4c08aed2011-07-01 19:47:50 +0000613 return(ClampToQuantum(wand->pixel.black));
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
cristy4c08aed2011-07-01 19:47:50 +0000705 PixelInfo
cristy3ed852e2009-09-05 21:47:34 +0000706 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);
cristyb51dff52011-05-19 16:55:47 +0000750 (void) FormatLocaleString(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)
cristyb51dff52011-05-19 16:55:47 +0000755 (void) FormatLocaleString(color+strlen(color),MaxTextExtent,",%g",
cristy4c08aed2011-07-01 19:47:50 +0000756 (double) (QuantumScale*wand->pixel.black));
cristy3ed852e2009-09-05 21:47:34 +0000757 if (wand->pixel.matte != MagickFalse)
cristyb51dff52011-05-19 16:55:47 +0000758 (void) FormatLocaleString(color+strlen(color),MaxTextExtent,",%g",
cristy4c08aed2011-07-01 19:47:50 +0000759 (double) (QuantumScale*wand->pixel.alpha));
cristy3ed852e2009-09-05 21:47:34 +0000760 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%
cristy4c08aed2011-07-01 19:47:50 +00001090% Quantum PixelGetIndex(const PixelWand *wand)
cristy3ed852e2009-09-05 21:47:34 +00001091%
1092% A description of each parameter follows:
1093%
1094% o wand: the pixel wand.
1095%
1096*/
cristy4c08aed2011-07-01 19:47:50 +00001097WandExport Quantum PixelGetIndex(const PixelWand *wand)
cristy3ed852e2009-09-05 21:47:34 +00001098{
1099 assert(wand != (const PixelWand *) NULL);
1100 assert(wand->signature == WandSignature);
1101 if (wand->debug != MagickFalse)
1102 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001103 return((Quantum) wand->pixel.black);
cristy3ed852e2009-09-05 21:47:34 +00001104}
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% %
cristy9e1d53f2010-12-16 13:44:43 +00001173% P i x e l G e t M a g i c k C o l o r %
cristy3ed852e2009-09-05 21:47:34 +00001174% %
1175% %
1176% %
1177%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1178%
1179% PixelGetMagickColor() gets the magick color of the pixel wand.
1180%
1181% The format of the PixelGetMagickColor method is:
1182%
cristy4c08aed2011-07-01 19:47:50 +00001183% void PixelGetMagickColor(PixelWand *wand,PixelInfo *color)
cristy3ed852e2009-09-05 21:47:34 +00001184%
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,
cristy4c08aed2011-07-01 19:47:50 +00001193 PixelInfo *color)
cristy3ed852e2009-09-05 21:47:34 +00001194{
1195 assert(wand != (const PixelWand *) NULL);
1196 assert(wand->signature == WandSignature);
1197 if (wand->debug != MagickFalse)
1198 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001199 assert(color != (PixelInfo *) NULL);
cristy3ed852e2009-09-05 21:47:34 +00001200 *color=wand->pixel;
1201}
1202
1203/*
1204%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1205% %
1206% %
1207% %
cristy28474bf2011-09-11 23:32:52 +00001208% P i x e l G e t P i x e l %
1209% %
1210% %
1211% %
1212%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1213%
1214% PixelGetPixel() returns the pixel wand pixel.
1215%
1216% The format of the PixelGetPixel method is:
1217%
1218% PixelInfo PixelGetPixel(const PixelWand *wand)
1219%
1220% A description of each parameter follows:
1221%
1222% o wand: the pixel wand.
1223%
1224*/
1225WandExport PixelInfo PixelGetPixel(const PixelWand *wand)
1226{
1227 assert(wand != (const PixelWand *) NULL);
1228 assert(wand->signature == WandSignature);
1229 if (wand->debug != MagickFalse)
1230 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1231 return(wand->pixel);
1232}
1233
1234/*
1235%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1236% %
1237% %
1238% %
cristy4c08aed2011-07-01 19:47:50 +00001239% P i x e l G e t Q u a n t u m P a c k e t %
cristy3ed852e2009-09-05 21:47:34 +00001240% %
1241% %
1242% %
1243%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1244%
cristy101ab702011-10-13 13:06:32 +00001245% PixelGetQuantumPacket() gets the packet of the pixel wand as a PixelInfo.
cristy3ed852e2009-09-05 21:47:34 +00001246%
cristy4c08aed2011-07-01 19:47:50 +00001247% The format of the PixelGetQuantumPacket method is:
cristy3ed852e2009-09-05 21:47:34 +00001248%
cristy101ab702011-10-13 13:06:32 +00001249% void PixelGetQuantumPacket(PixelWand *wand,PixelInfo *packet)
cristy3ed852e2009-09-05 21:47:34 +00001250%
1251% A description of each parameter follows:
1252%
1253% o wand: the pixel wand.
1254%
cristy4c08aed2011-07-01 19:47:50 +00001255% o packet: The pixel wand packet is returned here.
cristy3ed852e2009-09-05 21:47:34 +00001256%
1257*/
cristy101ab702011-10-13 13:06:32 +00001258WandExport void PixelGetQuantumPacket(const PixelWand *wand,PixelInfo *packet)
cristy3ed852e2009-09-05 21:47:34 +00001259{
1260 assert(wand != (const PixelWand *) NULL);
1261 assert(wand->signature == WandSignature);
1262 if (wand->debug != MagickFalse)
1263 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy101ab702011-10-13 13:06:32 +00001264 assert(packet != (PixelInfo *) NULL);
cristy4c08aed2011-07-01 19:47:50 +00001265 packet->alpha=ClampToQuantum(wand->pixel.alpha);
cristy3ed852e2009-09-05 21:47:34 +00001266 if (wand->pixel.colorspace == CMYKColorspace)
1267 {
cristy4c08aed2011-07-01 19:47:50 +00001268 packet->red=ClampToQuantum((MagickRealType) QuantumRange-
1269 (wand->pixel.red*(QuantumRange-wand->pixel.black)+
1270 wand->pixel.black));
1271 packet->green=ClampToQuantum((MagickRealType) QuantumRange-
1272 (wand->pixel.green*(QuantumRange-wand->pixel.black)+
1273 wand->pixel.black));
1274 packet->blue=ClampToQuantum((MagickRealType) QuantumRange-
1275 (wand->pixel.blue*(QuantumRange-wand->pixel.black)+
1276 wand->pixel.black));
1277 packet->black=ClampToQuantum(wand->pixel.black);
cristy3ed852e2009-09-05 21:47:34 +00001278 return;
1279 }
cristy4c08aed2011-07-01 19:47:50 +00001280 packet->red=ClampToQuantum(wand->pixel.red);
1281 packet->green=ClampToQuantum(wand->pixel.green);
1282 packet->blue=ClampToQuantum(wand->pixel.blue);
1283}
1284
1285/*
1286%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1287% %
1288% %
1289% %
1290% P i x e l G e t Q u a n t u m P i x e l %
1291% %
1292% %
1293% %
1294%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1295%
cristy101ab702011-10-13 13:06:32 +00001296% PixelGetQuantumPixel() gets the pixel of the pixel wand as a PixelInfo.
cristy4c08aed2011-07-01 19:47:50 +00001297%
1298% The format of the PixelGetQuantumPixel method is:
1299%
1300% void PixelGetQuantumPixel(const Image *image,const PixelWand *wand,
1301% Quantum *pixel)
1302%
1303% A description of each parameter follows:
1304%
1305% o wand: the pixel wand.
1306%
1307% o pixel: The pixel wand pixel is returned here.
1308%
1309*/
1310WandExport void PixelGetQuantumPixel(const Image *image,const PixelWand *wand,
1311 Quantum *pixel)
1312{
1313 assert(wand != (const PixelWand *) NULL);
1314 assert(wand->signature == WandSignature);
1315 if (wand->debug != MagickFalse)
1316 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1317 assert(pixel != (Quantum *) NULL);
1318 SetPixelAlpha(image,ClampToQuantum(wand->pixel.alpha),pixel);
1319 if (wand->pixel.colorspace == CMYKColorspace)
1320 {
1321 SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange-
1322 (wand->pixel.red*(QuantumRange-wand->pixel.black)+wand->pixel.black)),
1323 pixel);
1324 SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange-
1325 (wand->pixel.green*(QuantumRange-wand->pixel.black)+wand->pixel.black)),
1326 pixel);
1327 SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange-
1328 (wand->pixel.blue*(QuantumRange-wand->pixel.black)+wand->pixel.black)),
1329 pixel);
1330 SetPixelBlack(image,ClampToQuantum(wand->pixel.black),pixel);
1331 return;
1332 }
1333 SetPixelRed(image,ClampToQuantum(wand->pixel.red),pixel);
1334 SetPixelGreen(image,ClampToQuantum(wand->pixel.green),pixel);
1335 SetPixelBlue(image,ClampToQuantum(wand->pixel.blue),pixel);
cristy3ed852e2009-09-05 21:47:34 +00001336}
1337
1338/*
1339%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1340% %
1341% %
1342% %
1343% P i x e l G e t R e d %
1344% %
1345% %
1346% %
1347%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1348%
1349% PixelGetRed() returns the normalized red color of the pixel wand.
1350%
1351% The format of the PixelGetRed method is:
1352%
1353% double PixelGetRed(const PixelWand *wand)
1354%
1355% A description of each parameter follows:
1356%
1357% o wand: the pixel wand.
1358%
1359*/
1360WandExport double PixelGetRed(const PixelWand *wand)
1361{
1362 assert(wand != (const PixelWand *) NULL);
1363 assert(wand->signature == WandSignature);
1364 if (wand->debug != MagickFalse)
1365 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1366 return((double) QuantumScale*wand->pixel.red);
1367}
1368
1369/*
1370%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1371% %
1372% %
1373% %
1374% P i x e l G e t R e d Q u a n t u m %
1375% %
1376% %
1377% %
1378%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1379%
1380% PixelGetRedQuantum() returns the red color of the pixel wand.
1381%
1382% The format of the PixelGetRedQuantum method is:
1383%
1384% Quantum PixelGetRedQuantum(const PixelWand *wand)
1385%
1386% A description of each parameter follows:
1387%
1388% o wand: the pixel wand.
1389%
1390*/
1391WandExport Quantum PixelGetRedQuantum(const PixelWand *wand)
1392{
1393 assert(wand != (const PixelWand *) NULL);
1394 assert(wand->signature == WandSignature);
1395 if (wand->debug != MagickFalse)
1396 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001397 return(ClampToQuantum(wand->pixel.red));
cristy3ed852e2009-09-05 21:47:34 +00001398}
1399
1400/*
1401%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1402% %
1403% %
1404% %
1405% P i x e l G e t Y e l l o w %
1406% %
1407% %
1408% %
1409%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1410%
1411% PixelGetYellow() returns the normalized yellow color of the pixel wand.
1412%
1413% The format of the PixelGetYellow method is:
1414%
1415% double PixelGetYellow(const PixelWand *wand)
1416%
1417% A description of each parameter follows:
1418%
1419% o wand: the pixel wand.
1420%
1421*/
1422WandExport double PixelGetYellow(const PixelWand *wand)
1423{
1424 assert(wand != (const PixelWand *) NULL);
1425 assert(wand->signature == WandSignature);
1426 if (wand->debug != MagickFalse)
1427 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1428 return((double) QuantumScale*wand->pixel.blue);
1429}
1430
1431/*
1432%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1433% %
1434% %
1435% %
1436% P i x e l G e t Y e l l o w Q u a n t u m %
1437% %
1438% %
1439% %
1440%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1441%
1442% PixelGetYellowQuantum() returns the yellow color of the pixel wand.
1443%
1444% The format of the PixelGetYellowQuantum method is:
1445%
1446% Quantum PixelGetYellowQuantum(const PixelWand *wand)
1447%
1448% A description of each parameter follows:
1449%
1450% o wand: the pixel wand.
1451%
1452*/
1453WandExport Quantum PixelGetYellowQuantum(const PixelWand *wand)
1454{
1455 assert(wand != (const PixelWand *) NULL);
1456 assert(wand->signature == WandSignature);
1457 if (wand->debug != MagickFalse)
1458 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001459 return(ClampToQuantum(wand->pixel.blue));
cristy3ed852e2009-09-05 21:47:34 +00001460}
1461
1462/*
1463%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1464% %
1465% %
1466% %
1467% P i x e l S e t A l p h a %
1468% %
1469% %
1470% %
1471%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1472%
1473% PixelSetAlpha() sets the normalized alpha color of the pixel wand.
1474%
1475% The format of the PixelSetAlpha method is:
1476%
1477% void PixelSetAlpha(PixelWand *wand,const double alpha)
1478%
1479% A description of each parameter follows:
1480%
1481% o wand: the pixel wand.
1482%
1483% o alpha: the level of transparency: 1.0 is fully opaque and 0.0 is fully
1484% transparent.
1485%
1486*/
1487WandExport void PixelSetAlpha(PixelWand *wand,const double alpha)
1488{
1489 assert(wand != (const PixelWand *) NULL);
1490 assert(wand->signature == WandSignature);
1491 if (wand->debug != MagickFalse)
1492 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001493 wand->pixel.alpha=ClampToQuantum(QuantumRange*alpha);
cristy3ed852e2009-09-05 21:47:34 +00001494}
1495
1496/*
1497%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1498% %
1499% %
1500% %
1501% P i x e l S e t A l p h a Q u a n t u m %
1502% %
1503% %
1504% %
1505%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1506%
1507% PixelSetAlphaQuantum() sets the alpha color of the pixel wand.
1508%
1509% The format of the PixelSetAlphaQuantum method is:
1510%
1511% void PixelSetAlphaQuantum(PixelWand *wand,
cristyb6a294d2011-10-03 00:55:17 +00001512% const Quantum alpha)
cristy3ed852e2009-09-05 21:47:34 +00001513%
1514% A description of each parameter follows:
1515%
1516% o wand: the pixel wand.
1517%
cristyb6a294d2011-10-03 00:55:17 +00001518% o alpha: the alpha color.
cristy3ed852e2009-09-05 21:47:34 +00001519%
1520*/
cristyb6a294d2011-10-03 00:55:17 +00001521WandExport void PixelSetAlphaQuantum(PixelWand *wand,const Quantum alpha)
cristy3ed852e2009-09-05 21:47:34 +00001522{
1523 assert(wand != (const PixelWand *) NULL);
1524 assert(wand->signature == WandSignature);
1525 if (wand->debug != MagickFalse)
1526 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyb6a294d2011-10-03 00:55:17 +00001527 wand->pixel.alpha=(MagickRealType) alpha;
cristy3ed852e2009-09-05 21:47:34 +00001528}
1529
1530/*
1531%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1532% %
1533% %
1534% %
1535% P i x e l S e t B l a c k %
1536% %
1537% %
1538% %
1539%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1540%
1541% PixelSetBlack() sets the normalized black color of the pixel wand.
1542%
1543% The format of the PixelSetBlack method is:
1544%
1545% void PixelSetBlack(PixelWand *wand,const double black)
1546%
1547% A description of each parameter follows:
1548%
1549% o wand: the pixel wand.
1550%
1551% o black: the black color.
1552%
1553*/
1554WandExport void PixelSetBlack(PixelWand *wand,const double black)
1555{
1556 assert(wand != (const PixelWand *) NULL);
1557 assert(wand->signature == WandSignature);
1558 if (wand->debug != MagickFalse)
1559 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001560 wand->pixel.black=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001561 QuantumRange*black);
1562}
1563
1564/*
1565%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1566% %
1567% %
1568% %
1569% P i x e l S e t B l a c k Q u a n t u m %
1570% %
1571% %
1572% %
1573%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1574%
1575% PixelSetBlackQuantum() sets the black color of the pixel wand.
1576%
1577% The format of the PixelSetBlackQuantum method is:
1578%
1579% void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
1580%
1581% A description of each parameter follows:
1582%
1583% o wand: the pixel wand.
1584%
1585% o black: the black color.
1586%
1587*/
1588WandExport void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
1589{
1590 assert(wand != (const PixelWand *) NULL);
1591 assert(wand->signature == WandSignature);
1592 if (wand->debug != MagickFalse)
1593 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001594 wand->pixel.black=(MagickRealType) black;
cristy3ed852e2009-09-05 21:47:34 +00001595}
1596
1597/*
1598%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1599% %
1600% %
1601% %
1602% P i x e l S e t B l u e %
1603% %
1604% %
1605% %
1606%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1607%
1608% PixelSetBlue() sets the normalized blue color of the pixel wand.
1609%
1610% The format of the PixelSetBlue method is:
1611%
1612% void PixelSetBlue(PixelWand *wand,const double blue)
1613%
1614% A description of each parameter follows:
1615%
1616% o wand: the pixel wand.
1617%
1618% o blue: the blue color.
1619%
1620*/
1621WandExport void PixelSetBlue(PixelWand *wand,const double blue)
1622{
1623 assert(wand != (const PixelWand *) NULL);
1624 assert(wand->signature == WandSignature);
1625 if (wand->debug != MagickFalse)
1626 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001627 wand->pixel.blue=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001628 QuantumRange*blue);
1629}
1630
1631/*
1632%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1633% %
1634% %
1635% %
1636% P i x e l S e t B l u e Q u a n t u m %
1637% %
1638% %
1639% %
1640%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1641%
1642% PixelSetBlueQuantum() sets the blue color of the pixel wand.
1643%
1644% The format of the PixelSetBlueQuantum method is:
1645%
1646% void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
1647%
1648% A description of each parameter follows:
1649%
1650% o wand: the pixel wand.
1651%
1652% o blue: the blue color.
1653%
1654*/
1655WandExport void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
1656{
1657 assert(wand != (const PixelWand *) NULL);
1658 assert(wand->signature == WandSignature);
1659 if (wand->debug != MagickFalse)
1660 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1661 wand->pixel.blue=(MagickRealType) blue;
1662}
1663
1664/*
1665%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1666% %
1667% %
1668% %
1669% P i x e l S e t C o l o r %
1670% %
1671% %
1672% %
1673%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1674%
1675% PixelSetColor() sets the color of the pixel wand with a string (e.g.
1676% "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).
1677%
1678% The format of the PixelSetColor method is:
1679%
1680% MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
1681%
1682% A description of each parameter follows:
1683%
1684% o wand: the pixel wand.
1685%
1686% o color: the pixel wand color.
1687%
1688*/
1689WandExport MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
1690{
1691 MagickBooleanType
1692 status;
1693
cristy4c08aed2011-07-01 19:47:50 +00001694 PixelInfo
cristy3ed852e2009-09-05 21:47:34 +00001695 pixel;
1696
1697 assert(wand != (const PixelWand *) NULL);
1698 assert(wand->signature == WandSignature);
1699 if (wand->debug != MagickFalse)
1700 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy269c9412011-10-13 23:41:15 +00001701 status=QueryColorCompliance(color,AllCompliance,&pixel,wand->exception);
cristy3ed852e2009-09-05 21:47:34 +00001702 if (status != MagickFalse)
1703 wand->pixel=pixel;
1704 return(status);
1705}
1706
1707/*
1708%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1709% %
1710% %
1711% %
1712% P i x e l S e t C o l o r C o u n t %
1713% %
1714% %
1715% %
1716%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1717%
1718% PixelSetColorCount() sets the color count of the pixel wand.
1719%
1720% The format of the PixelSetColorCount method is:
1721%
cristybb503372010-05-27 20:51:26 +00001722% void PixelSetColorCount(PixelWand *wand,const size_t count)
cristy3ed852e2009-09-05 21:47:34 +00001723%
1724% A description of each parameter follows:
1725%
1726% o wand: the pixel wand.
1727%
1728% o count: the number of this particular color.
1729%
1730*/
cristybb503372010-05-27 20:51:26 +00001731WandExport void PixelSetColorCount(PixelWand *wand,const size_t count)
cristy3ed852e2009-09-05 21:47:34 +00001732{
1733 assert(wand != (const PixelWand *) NULL);
1734 assert(wand->signature == WandSignature);
1735 if (wand->debug != MagickFalse)
1736 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1737 wand->count=count;
1738}
1739
1740/*
1741%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1742% %
1743% %
1744% %
1745% P i x e l S e t C o l o r F r o m W a n d %
1746% %
1747% %
1748% %
1749%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1750%
1751% PixelSetColorFromWand() sets the color of the pixel wand.
1752%
1753% The format of the PixelSetColorFromWand method is:
1754%
1755% PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
1756%
1757% A description of each parameter follows:
1758%
1759% o wand: the pixel wand.
1760%
1761% o color: set the pixel wand color here.
1762%
1763*/
1764WandExport void PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
1765{
1766 assert(wand != (const PixelWand *) NULL);
1767 assert(wand->signature == WandSignature);
1768 if (wand->debug != MagickFalse)
1769 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1770 assert(color != (const PixelWand *) NULL);
1771 wand->pixel=color->pixel;
1772}
1773
1774/*
1775%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1776% %
1777% %
1778% %
1779% P i x e l S e t C y a n %
1780% %
1781% %
1782% %
1783%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1784%
1785% PixelSetCyan() sets the normalized cyan color of the pixel wand.
1786%
1787% The format of the PixelSetCyan method is:
1788%
1789% void PixelSetCyan(PixelWand *wand,const double cyan)
1790%
1791% A description of each parameter follows:
1792%
1793% o wand: the pixel wand.
1794%
1795% o cyan: the cyan color.
1796%
1797*/
1798WandExport void PixelSetCyan(PixelWand *wand,const double cyan)
1799{
1800 assert(wand != (const PixelWand *) NULL);
1801 assert(wand->signature == WandSignature);
1802 if (wand->debug != MagickFalse)
1803 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001804 wand->pixel.red=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001805 QuantumRange*cyan);
1806}
1807
1808/*
1809%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1810% %
1811% %
1812% %
1813% P i x e l S e t C y a n Q u a n t u m %
1814% %
1815% %
1816% %
1817%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1818%
1819% PixelSetCyanQuantum() sets the cyan color of the pixel wand.
1820%
1821% The format of the PixelSetCyanQuantum method is:
1822%
1823% void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
1824%
1825% A description of each parameter follows:
1826%
1827% o wand: the pixel wand.
1828%
1829% o cyan: the cyan color.
1830%
1831*/
1832WandExport void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
1833{
1834 assert(wand != (const PixelWand *) NULL);
1835 assert(wand->signature == WandSignature);
1836 if (wand->debug != MagickFalse)
1837 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1838 wand->pixel.red=(MagickRealType) cyan;
1839}
1840
1841/*
1842%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1843% %
1844% %
1845% %
1846% P i x e l S e t F u z z %
1847% %
1848% %
1849% %
1850%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1851%
1852% PixelSetFuzz() sets the fuzz value of the pixel wand.
1853%
1854% The format of the PixelSetFuzz method is:
1855%
1856% void PixelSetFuzz(PixelWand *wand,const double fuzz)
1857%
1858% A description of each parameter follows:
1859%
1860% o wand: the pixel wand.
1861%
1862% o fuzz: the fuzz value.
1863%
1864*/
1865WandExport void PixelSetFuzz(PixelWand *wand,const double fuzz)
1866{
1867 assert(wand != (const PixelWand *) NULL);
1868 assert(wand->signature == WandSignature);
1869 if (wand->debug != MagickFalse)
1870 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1871 wand->pixel.fuzz=(MagickRealType) fuzz;
1872}
1873
1874/*
1875%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1876% %
1877% %
1878% %
1879% P i x e l S e t G r e e n %
1880% %
1881% %
1882% %
1883%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1884%
1885% PixelSetGreen() sets the normalized green color of the pixel wand.
1886%
1887% The format of the PixelSetGreen method is:
1888%
1889% void PixelSetGreen(PixelWand *wand,const double green)
1890%
1891% A description of each parameter follows:
1892%
1893% o wand: the pixel wand.
1894%
1895% o green: the green color.
1896%
1897*/
1898WandExport void PixelSetGreen(PixelWand *wand,const double green)
1899{
1900 assert(wand != (const PixelWand *) NULL);
1901 assert(wand->signature == WandSignature);
1902 if (wand->debug != MagickFalse)
1903 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001904 wand->pixel.green=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001905 QuantumRange*green);
1906}
1907
1908/*
1909%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1910% %
1911% %
1912% %
1913% P i x e l S e t G r e e n Q u a n t u m %
1914% %
1915% %
1916% %
1917%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1918%
1919% PixelSetGreenQuantum() sets the green color of the pixel wand.
1920%
1921% The format of the PixelSetGreenQuantum method is:
1922%
1923% void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
1924%
1925% A description of each parameter follows:
1926%
1927% o wand: the pixel wand.
1928%
1929% o green: the green color.
1930%
1931*/
1932WandExport void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
1933{
1934 assert(wand != (const PixelWand *) NULL);
1935 assert(wand->signature == WandSignature);
1936 if (wand->debug != MagickFalse)
1937 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1938 wand->pixel.green=(MagickRealType) green;
1939}
1940
1941/*
1942%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1943% %
1944% %
1945% %
1946% P i x e l S e t H S L %
1947% %
1948% %
1949% %
1950%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1951%
1952% PixelSetHSL() sets the normalized HSL color of the pixel wand.
1953%
1954% The format of the PixelSetHSL method is:
1955%
1956% void PixelSetHSL(PixelWand *wand,const double hue,
1957% const double saturation,const double lightness)
1958%
1959% A description of each parameter follows:
1960%
1961% o wand: the pixel wand.
1962%
1963% o hue,saturation,lightness: Return the pixel hue, saturation, and
1964% brightness.
1965%
1966*/
1967WandExport void PixelSetHSL(PixelWand *wand,const double hue,
1968 const double saturation,const double lightness)
1969{
cristy3094b7f2011-10-01 23:18:02 +00001970 double
cristy3ed852e2009-09-05 21:47:34 +00001971 blue,
1972 green,
1973 red;
1974
1975 assert(wand != (const PixelWand *) NULL);
1976 assert(wand->signature == WandSignature);
1977 if (wand->debug != MagickFalse)
1978 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1979 ConvertHSLToRGB(hue,saturation,lightness,&red,&green,&blue);
1980 wand->pixel.red=(MagickRealType) red;
1981 wand->pixel.green=(MagickRealType) green;
1982 wand->pixel.blue=(MagickRealType) blue;
1983}
1984
1985/*
1986%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1987% %
1988% %
1989% %
1990% P i x e l S e t I n d e x %
1991% %
1992% %
1993% %
1994%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1995%
1996% PixelSetIndex() sets the colormap index of the pixel wand.
1997%
1998% The format of the PixelSetIndex method is:
1999%
cristy4c08aed2011-07-01 19:47:50 +00002000% void PixelSetIndex(PixelWand *wand,const Quantum index)
cristy3ed852e2009-09-05 21:47:34 +00002001%
2002% A description of each parameter follows:
2003%
2004% o wand: the pixel wand.
2005%
2006% o index: the colormap index.
2007%
2008*/
cristy4c08aed2011-07-01 19:47:50 +00002009WandExport void PixelSetIndex(PixelWand *wand,const Quantum index)
cristy3ed852e2009-09-05 21:47:34 +00002010{
2011 assert(wand != (const PixelWand *) NULL);
2012 assert(wand->signature == WandSignature);
2013 if (wand->debug != MagickFalse)
2014 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2015 wand->pixel.index=(MagickRealType) index;
2016}
2017
2018/*
2019%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2020% %
2021% %
2022% %
2023% P i x e l S e t M a g e n t a %
2024% %
2025% %
2026% %
2027%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2028%
2029% PixelSetMagenta() sets the normalized magenta color of the pixel wand.
2030%
2031% The format of the PixelSetMagenta method is:
2032%
2033% void PixelSetMagenta(PixelWand *wand,const double magenta)
2034%
2035% A description of each parameter follows:
2036%
2037% o wand: the pixel wand.
2038%
2039% o magenta: the magenta color.
2040%
2041*/
2042WandExport void PixelSetMagenta(PixelWand *wand,const double magenta)
2043{
2044 assert(wand != (const PixelWand *) NULL);
2045 assert(wand->signature == WandSignature);
2046 if (wand->debug != MagickFalse)
2047 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00002048 wand->pixel.green=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002049 QuantumRange*magenta);
2050}
2051
2052/*
2053%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2054% %
2055% %
2056% %
2057% P i x e l S e t M a g e n t a Q u a n t u m %
2058% %
2059% %
2060% %
2061%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2062%
2063% PixelSetMagentaQuantum() sets the magenta color of the pixel wand.
2064%
2065% The format of the PixelSetMagentaQuantum method is:
2066%
2067% void PixelSetMagentaQuantum(PixelWand *wand,
2068% const Quantum magenta)
2069%
2070% A description of each parameter follows:
2071%
2072% o wand: the pixel wand.
2073%
2074% o magenta: the green magenta.
2075%
2076*/
2077WandExport void PixelSetMagentaQuantum(PixelWand *wand,const Quantum magenta)
2078{
2079 assert(wand != (const PixelWand *) NULL);
2080 assert(wand->signature == WandSignature);
2081 if (wand->debug != MagickFalse)
2082 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2083 wand->pixel.green=(MagickRealType) magenta;
2084}
2085
2086/*
2087%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2088% %
2089% %
2090% %
2091% P i x e l S e t M a g i c k C o l o r %
2092% %
2093% %
2094% %
2095%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2096%
cristy4c08aed2011-07-01 19:47:50 +00002097% PixelSetPixelInfo() sets the color of the pixel wand.
cristy3ed852e2009-09-05 21:47:34 +00002098%
cristy4c08aed2011-07-01 19:47:50 +00002099% The format of the PixelSetPixelInfo method is:
cristy3ed852e2009-09-05 21:47:34 +00002100%
cristy4c08aed2011-07-01 19:47:50 +00002101% PixelSetPixelInfo(PixelWand *wand,const PixelInfo *color)
cristy3ed852e2009-09-05 21:47:34 +00002102%
2103% A description of each parameter follows:
2104%
2105% o wand: the pixel wand.
2106%
2107% o color: the pixel wand color.
2108%
2109*/
cristy4c08aed2011-07-01 19:47:50 +00002110WandExport void PixelSetPixelInfo(PixelWand *wand,
2111 const PixelInfo *color)
cristy3ed852e2009-09-05 21:47:34 +00002112{
2113 assert(wand != (const PixelWand *) NULL);
2114 assert(wand->signature == WandSignature);
2115 if (wand->debug != MagickFalse)
2116 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00002117 assert(color != (const PixelInfo *) NULL);
cristy3ed852e2009-09-05 21:47:34 +00002118 wand->pixel=(*color);
2119}
2120
2121/*
2122%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2123% %
2124% %
2125% %
cristy4c08aed2011-07-01 19:47:50 +00002126% P i x e l S e t Q u a n t u m P a c k e t %
cristy3ed852e2009-09-05 21:47:34 +00002127% %
2128% %
2129% %
2130%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2131%
cristy4c08aed2011-07-01 19:47:50 +00002132% PixelSetQuantumPacket() sets the packet of the pixel wand.
cristy3ed852e2009-09-05 21:47:34 +00002133%
cristy4c08aed2011-07-01 19:47:50 +00002134% The format of the PixelSetQuantumPacket method is:
cristy3ed852e2009-09-05 21:47:34 +00002135%
cristy101ab702011-10-13 13:06:32 +00002136% PixelSetQuantumPacket(PixelWand *wand,const PixelInfo *packet)
cristy3ed852e2009-09-05 21:47:34 +00002137%
2138% A description of each parameter follows:
2139%
2140% o wand: the pixel wand.
2141%
cristy4c08aed2011-07-01 19:47:50 +00002142% o packet: the pixel wand packet.
cristy3ed852e2009-09-05 21:47:34 +00002143%
2144*/
cristy101ab702011-10-13 13:06:32 +00002145WandExport void PixelSetQuantumPacket(PixelWand *wand,const PixelInfo *packet)
cristy3ed852e2009-09-05 21:47:34 +00002146{
2147 assert(wand != (const PixelWand *) NULL);
2148 assert(wand->signature == WandSignature);
2149 if (wand->debug != MagickFalse)
2150 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy101ab702011-10-13 13:06:32 +00002151 assert(packet != (PixelInfo *) NULL);
cristy4c08aed2011-07-01 19:47:50 +00002152 wand->pixel.red=(MagickRealType) packet->red;
2153 wand->pixel.green=(MagickRealType) packet->green;
2154 wand->pixel.blue=(MagickRealType) packet->blue;
2155 wand->pixel.black=(MagickRealType) packet->black;
2156 wand->pixel.alpha=(MagickRealType) packet->alpha;
2157 wand->pixel.matte=packet->alpha != OpaqueAlpha ? MagickTrue : MagickFalse;
2158}
2159
2160/*
2161%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2162% %
2163% %
2164% %
2165% P i x e l S e t Q u a n t u m P i x e l %
2166% %
2167% %
2168% %
2169%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2170%
2171% PixelSetQuantumPixel() sets the pixel of the pixel wand.
2172%
2173% The format of the PixelSetQuantumPixel method is:
2174%
2175% PixelSetQuantumPixel(const Image *image,const QixelPixel *pixel,
2176% PixelWand *wand)
2177%
2178% A description of each parameter follows:
2179%
2180% o wand: the pixel wand.
2181%
2182% o pixel: the pixel wand pixel.
2183%
2184*/
2185WandExport void PixelSetQuantumPixel(const Image *image,const Quantum *pixel,
2186 PixelWand *wand)
2187{
2188 assert(wand != (const PixelWand *) NULL);
2189 assert(wand->signature == WandSignature);
2190 if (wand->debug != MagickFalse)
2191 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2192 assert(pixel != (Quantum *) NULL);
2193 wand->pixel.red=(MagickRealType) GetPixelRed(image,pixel);
2194 wand->pixel.green=(MagickRealType) GetPixelGreen(image,pixel);
2195 wand->pixel.blue=(MagickRealType) GetPixelBlue(image,pixel);
2196 wand->pixel.black=(MagickRealType) GetPixelBlack(image,pixel);
2197 wand->pixel.alpha=(MagickRealType) GetPixelAlpha(image,pixel);
2198 wand->pixel.matte=GetPixelAlpha(image,pixel) != OpaqueAlpha ? MagickTrue :
2199 MagickFalse;
cristy3ed852e2009-09-05 21:47:34 +00002200}
2201
2202/*
2203%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2204% %
2205% %
2206% %
2207% P i x e l S e t R e d %
2208% %
2209% %
2210% %
2211%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2212%
2213% PixelSetRed() sets the normalized red color of the pixel wand.
2214%
2215% The format of the PixelSetRed method is:
2216%
2217% void PixelSetRed(PixelWand *wand,const double red)
2218%
2219% A description of each parameter follows:
2220%
2221% o wand: the pixel wand.
2222%
2223% o red: the red color.
2224%
2225*/
2226WandExport void PixelSetRed(PixelWand *wand,const double red)
2227{
2228 assert(wand != (const PixelWand *) NULL);
2229 assert(wand->signature == WandSignature);
2230 if (wand->debug != MagickFalse)
2231 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00002232 wand->pixel.red=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002233 QuantumRange*red);
2234}
2235
2236/*
2237%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2238% %
2239% %
2240% %
2241% P i x e l S e t R e d Q u a n t u m %
2242% %
2243% %
2244% %
2245%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2246%
2247% PixelSetRedQuantum() sets the red color of the pixel wand.
2248%
2249% The format of the PixelSetRedQuantum method is:
2250%
2251% void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
2252%
2253% A description of each parameter follows:
2254%
2255% o wand: the pixel wand.
2256%
2257% o red: the red color.
2258%
2259*/
2260WandExport void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
2261{
2262 assert(wand != (const PixelWand *) NULL);
2263 assert(wand->signature == WandSignature);
2264 if (wand->debug != MagickFalse)
2265 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2266 wand->pixel.red=(MagickRealType) red;
2267}
2268
2269/*
2270%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2271% %
2272% %
2273% %
2274% P i x e l S e t Y e l l o w %
2275% %
2276% %
2277% %
2278%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2279%
2280% PixelSetYellow() sets the normalized yellow color of the pixel wand.
2281%
2282% The format of the PixelSetYellow method is:
2283%
2284% void PixelSetYellow(PixelWand *wand,const double yellow)
2285%
2286% A description of each parameter follows:
2287%
2288% o wand: the pixel wand.
2289%
2290% o yellow: the yellow color.
2291%
2292*/
2293WandExport void PixelSetYellow(PixelWand *wand,const double yellow)
2294{
2295 assert(wand != (const PixelWand *) NULL);
2296 assert(wand->signature == WandSignature);
2297 if (wand->debug != MagickFalse)
2298 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00002299 wand->pixel.blue=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002300 QuantumRange*yellow);
2301}
2302
2303/*
2304%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2305% %
2306% %
2307% %
2308% P i x e l S e t Y e l l o w Q u a n t u m %
2309% %
2310% %
2311% %
2312%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2313%
2314% PixelSetYellowQuantum() sets the yellow color of the pixel wand.
2315%
2316% The format of the PixelSetYellowQuantum method is:
2317%
2318% void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
2319%
2320% A description of each parameter follows:
2321%
2322% o wand: the pixel wand.
2323%
2324% o yellow: the yellow color.
2325%
2326*/
2327WandExport void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
2328{
2329 assert(wand != (const PixelWand *) NULL);
2330 assert(wand->signature == WandSignature);
2331 if (wand->debug != MagickFalse)
2332 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2333 wand->pixel.blue=(MagickRealType) yellow;
2334}