blob: f16e899e614debeae09fe72723e9a6c17a4c9bf3 [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% %
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);
cristy4c08aed2011-07-01 19:47:50 +00001231 return((double) QuantumScale*wand->pixel.alpha);
cristy3ed852e2009-09-05 21:47:34 +00001232}
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);
cristy4c08aed2011-07-01 19:47:50 +00001262 return(ClampToQuantum(wand->pixel.alpha));
cristy3ed852e2009-09-05 21:47:34 +00001263}
1264
1265/*
1266%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1267% %
1268% %
1269% %
cristy28474bf2011-09-11 23:32:52 +00001270% P i x e l G e t P i x e l %
1271% %
1272% %
1273% %
1274%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1275%
1276% PixelGetPixel() returns the pixel wand pixel.
1277%
1278% The format of the PixelGetPixel method is:
1279%
1280% PixelInfo PixelGetPixel(const PixelWand *wand)
1281%
1282% A description of each parameter follows:
1283%
1284% o wand: the pixel wand.
1285%
1286*/
1287WandExport PixelInfo PixelGetPixel(const PixelWand *wand)
1288{
1289 assert(wand != (const PixelWand *) NULL);
1290 assert(wand->signature == WandSignature);
1291 if (wand->debug != MagickFalse)
1292 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1293 return(wand->pixel);
1294}
1295
1296/*
1297%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1298% %
1299% %
1300% %
cristy4c08aed2011-07-01 19:47:50 +00001301% 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 +00001302% %
1303% %
1304% %
1305%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1306%
cristy4c08aed2011-07-01 19:47:50 +00001307% PixelGetQuantumPacket() gets the packet of the pixel wand as a PixelPacket.
cristy3ed852e2009-09-05 21:47:34 +00001308%
cristy4c08aed2011-07-01 19:47:50 +00001309% The format of the PixelGetQuantumPacket method is:
cristy3ed852e2009-09-05 21:47:34 +00001310%
cristy4c08aed2011-07-01 19:47:50 +00001311% void PixelGetQuantumPacket(PixelWand *wand,PixelPacket *packet)
cristy3ed852e2009-09-05 21:47:34 +00001312%
1313% A description of each parameter follows:
1314%
1315% o wand: the pixel wand.
1316%
cristy4c08aed2011-07-01 19:47:50 +00001317% o packet: The pixel wand packet is returned here.
cristy3ed852e2009-09-05 21:47:34 +00001318%
1319*/
cristy4c08aed2011-07-01 19:47:50 +00001320WandExport void PixelGetQuantumPacket(const PixelWand *wand,PixelPacket *packet)
cristy3ed852e2009-09-05 21:47:34 +00001321{
1322 assert(wand != (const PixelWand *) NULL);
1323 assert(wand->signature == WandSignature);
1324 if (wand->debug != MagickFalse)
1325 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001326 assert(packet != (PixelPacket *) NULL);
1327 packet->alpha=ClampToQuantum(wand->pixel.alpha);
cristy3ed852e2009-09-05 21:47:34 +00001328 if (wand->pixel.colorspace == CMYKColorspace)
1329 {
cristy4c08aed2011-07-01 19:47:50 +00001330 packet->red=ClampToQuantum((MagickRealType) QuantumRange-
1331 (wand->pixel.red*(QuantumRange-wand->pixel.black)+
1332 wand->pixel.black));
1333 packet->green=ClampToQuantum((MagickRealType) QuantumRange-
1334 (wand->pixel.green*(QuantumRange-wand->pixel.black)+
1335 wand->pixel.black));
1336 packet->blue=ClampToQuantum((MagickRealType) QuantumRange-
1337 (wand->pixel.blue*(QuantumRange-wand->pixel.black)+
1338 wand->pixel.black));
1339 packet->black=ClampToQuantum(wand->pixel.black);
cristy3ed852e2009-09-05 21:47:34 +00001340 return;
1341 }
cristy4c08aed2011-07-01 19:47:50 +00001342 packet->red=ClampToQuantum(wand->pixel.red);
1343 packet->green=ClampToQuantum(wand->pixel.green);
1344 packet->blue=ClampToQuantum(wand->pixel.blue);
1345}
1346
1347/*
1348%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1349% %
1350% %
1351% %
1352% P i x e l G e t Q u a n t u m P i x e l %
1353% %
1354% %
1355% %
1356%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1357%
1358% PixelGetQuantumPixel() gets the pixel of the pixel wand as a PixelPacket.
1359%
1360% The format of the PixelGetQuantumPixel method is:
1361%
1362% void PixelGetQuantumPixel(const Image *image,const PixelWand *wand,
1363% Quantum *pixel)
1364%
1365% A description of each parameter follows:
1366%
1367% o wand: the pixel wand.
1368%
1369% o pixel: The pixel wand pixel is returned here.
1370%
1371*/
1372WandExport void PixelGetQuantumPixel(const Image *image,const PixelWand *wand,
1373 Quantum *pixel)
1374{
1375 assert(wand != (const PixelWand *) NULL);
1376 assert(wand->signature == WandSignature);
1377 if (wand->debug != MagickFalse)
1378 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1379 assert(pixel != (Quantum *) NULL);
1380 SetPixelAlpha(image,ClampToQuantum(wand->pixel.alpha),pixel);
1381 if (wand->pixel.colorspace == CMYKColorspace)
1382 {
1383 SetPixelRed(image,ClampToQuantum((MagickRealType) QuantumRange-
1384 (wand->pixel.red*(QuantumRange-wand->pixel.black)+wand->pixel.black)),
1385 pixel);
1386 SetPixelGreen(image,ClampToQuantum((MagickRealType) QuantumRange-
1387 (wand->pixel.green*(QuantumRange-wand->pixel.black)+wand->pixel.black)),
1388 pixel);
1389 SetPixelBlue(image,ClampToQuantum((MagickRealType) QuantumRange-
1390 (wand->pixel.blue*(QuantumRange-wand->pixel.black)+wand->pixel.black)),
1391 pixel);
1392 SetPixelBlack(image,ClampToQuantum(wand->pixel.black),pixel);
1393 return;
1394 }
1395 SetPixelRed(image,ClampToQuantum(wand->pixel.red),pixel);
1396 SetPixelGreen(image,ClampToQuantum(wand->pixel.green),pixel);
1397 SetPixelBlue(image,ClampToQuantum(wand->pixel.blue),pixel);
cristy3ed852e2009-09-05 21:47:34 +00001398}
1399
1400/*
1401%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1402% %
1403% %
1404% %
1405% P i x e l G e t R e d %
1406% %
1407% %
1408% %
1409%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1410%
1411% PixelGetRed() returns the normalized red color of the pixel wand.
1412%
1413% The format of the PixelGetRed method is:
1414%
1415% double PixelGetRed(const PixelWand *wand)
1416%
1417% A description of each parameter follows:
1418%
1419% o wand: the pixel wand.
1420%
1421*/
1422WandExport double PixelGetRed(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.red);
1429}
1430
1431/*
1432%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1433% %
1434% %
1435% %
1436% P i x e l G e t R e d Q u a n t u m %
1437% %
1438% %
1439% %
1440%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1441%
1442% PixelGetRedQuantum() returns the red color of the pixel wand.
1443%
1444% The format of the PixelGetRedQuantum method is:
1445%
1446% Quantum PixelGetRedQuantum(const PixelWand *wand)
1447%
1448% A description of each parameter follows:
1449%
1450% o wand: the pixel wand.
1451%
1452*/
1453WandExport Quantum PixelGetRedQuantum(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.red));
cristy3ed852e2009-09-05 21:47:34 +00001460}
1461
1462/*
1463%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1464% %
1465% %
1466% %
1467% P i x e l G e t Y e l l o w %
1468% %
1469% %
1470% %
1471%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1472%
1473% PixelGetYellow() returns the normalized yellow color of the pixel wand.
1474%
1475% The format of the PixelGetYellow method is:
1476%
1477% double PixelGetYellow(const PixelWand *wand)
1478%
1479% A description of each parameter follows:
1480%
1481% o wand: the pixel wand.
1482%
1483*/
1484WandExport double PixelGetYellow(const PixelWand *wand)
1485{
1486 assert(wand != (const PixelWand *) NULL);
1487 assert(wand->signature == WandSignature);
1488 if (wand->debug != MagickFalse)
1489 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1490 return((double) QuantumScale*wand->pixel.blue);
1491}
1492
1493/*
1494%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1495% %
1496% %
1497% %
1498% P i x e l G e t Y e l l o w Q u a n t u m %
1499% %
1500% %
1501% %
1502%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1503%
1504% PixelGetYellowQuantum() returns the yellow color of the pixel wand.
1505%
1506% The format of the PixelGetYellowQuantum method is:
1507%
1508% Quantum PixelGetYellowQuantum(const PixelWand *wand)
1509%
1510% A description of each parameter follows:
1511%
1512% o wand: the pixel wand.
1513%
1514*/
1515WandExport Quantum PixelGetYellowQuantum(const PixelWand *wand)
1516{
1517 assert(wand != (const PixelWand *) NULL);
1518 assert(wand->signature == WandSignature);
1519 if (wand->debug != MagickFalse)
1520 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001521 return(ClampToQuantum(wand->pixel.blue));
cristy3ed852e2009-09-05 21:47:34 +00001522}
1523
1524/*
1525%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1526% %
1527% %
1528% %
1529% P i x e l S e t A l p h a %
1530% %
1531% %
1532% %
1533%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1534%
1535% PixelSetAlpha() sets the normalized alpha color of the pixel wand.
1536%
1537% The format of the PixelSetAlpha method is:
1538%
1539% void PixelSetAlpha(PixelWand *wand,const double alpha)
1540%
1541% A description of each parameter follows:
1542%
1543% o wand: the pixel wand.
1544%
1545% o alpha: the level of transparency: 1.0 is fully opaque and 0.0 is fully
1546% transparent.
1547%
1548*/
1549WandExport void PixelSetAlpha(PixelWand *wand,const double alpha)
1550{
1551 assert(wand != (const PixelWand *) NULL);
1552 assert(wand->signature == WandSignature);
1553 if (wand->debug != MagickFalse)
1554 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001555 wand->pixel.alpha=ClampToQuantum(QuantumRange*alpha);
cristy3ed852e2009-09-05 21:47:34 +00001556}
1557
1558/*
1559%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1560% %
1561% %
1562% %
1563% P i x e l S e t A l p h a Q u a n t u m %
1564% %
1565% %
1566% %
1567%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1568%
1569% PixelSetAlphaQuantum() sets the alpha color of the pixel wand.
1570%
1571% The format of the PixelSetAlphaQuantum method is:
1572%
1573% void PixelSetAlphaQuantum(PixelWand *wand,
1574% const Quantum opacity)
1575%
1576% A description of each parameter follows:
1577%
1578% o wand: the pixel wand.
1579%
1580% o opacity: the opacity color.
1581%
1582*/
1583WandExport void PixelSetAlphaQuantum(PixelWand *wand,const Quantum opacity)
1584{
1585 assert(wand != (const PixelWand *) NULL);
1586 assert(wand->signature == WandSignature);
1587 if (wand->debug != MagickFalse)
1588 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001589 wand->pixel.alpha=(MagickRealType) opacity;
cristy3ed852e2009-09-05 21:47:34 +00001590}
1591
1592/*
1593%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1594% %
1595% %
1596% %
1597% P i x e l S e t B l a c k %
1598% %
1599% %
1600% %
1601%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1602%
1603% PixelSetBlack() sets the normalized black color of the pixel wand.
1604%
1605% The format of the PixelSetBlack method is:
1606%
1607% void PixelSetBlack(PixelWand *wand,const double black)
1608%
1609% A description of each parameter follows:
1610%
1611% o wand: the pixel wand.
1612%
1613% o black: the black color.
1614%
1615*/
1616WandExport void PixelSetBlack(PixelWand *wand,const double black)
1617{
1618 assert(wand != (const PixelWand *) NULL);
1619 assert(wand->signature == WandSignature);
1620 if (wand->debug != MagickFalse)
1621 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001622 wand->pixel.black=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001623 QuantumRange*black);
1624}
1625
1626/*
1627%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1628% %
1629% %
1630% %
1631% P i x e l S e t B l a c k Q u a n t u m %
1632% %
1633% %
1634% %
1635%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1636%
1637% PixelSetBlackQuantum() sets the black color of the pixel wand.
1638%
1639% The format of the PixelSetBlackQuantum method is:
1640%
1641% void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
1642%
1643% A description of each parameter follows:
1644%
1645% o wand: the pixel wand.
1646%
1647% o black: the black color.
1648%
1649*/
1650WandExport void PixelSetBlackQuantum(PixelWand *wand,const Quantum black)
1651{
1652 assert(wand != (const PixelWand *) NULL);
1653 assert(wand->signature == WandSignature);
1654 if (wand->debug != MagickFalse)
1655 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00001656 wand->pixel.black=(MagickRealType) black;
cristy3ed852e2009-09-05 21:47:34 +00001657}
1658
1659/*
1660%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1661% %
1662% %
1663% %
1664% P i x e l S e t B l u e %
1665% %
1666% %
1667% %
1668%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1669%
1670% PixelSetBlue() sets the normalized blue color of the pixel wand.
1671%
1672% The format of the PixelSetBlue method is:
1673%
1674% void PixelSetBlue(PixelWand *wand,const double blue)
1675%
1676% A description of each parameter follows:
1677%
1678% o wand: the pixel wand.
1679%
1680% o blue: the blue color.
1681%
1682*/
1683WandExport void PixelSetBlue(PixelWand *wand,const double blue)
1684{
1685 assert(wand != (const PixelWand *) NULL);
1686 assert(wand->signature == WandSignature);
1687 if (wand->debug != MagickFalse)
1688 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001689 wand->pixel.blue=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001690 QuantumRange*blue);
1691}
1692
1693/*
1694%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1695% %
1696% %
1697% %
1698% P i x e l S e t B l u e Q u a n t u m %
1699% %
1700% %
1701% %
1702%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1703%
1704% PixelSetBlueQuantum() sets the blue color of the pixel wand.
1705%
1706% The format of the PixelSetBlueQuantum method is:
1707%
1708% void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
1709%
1710% A description of each parameter follows:
1711%
1712% o wand: the pixel wand.
1713%
1714% o blue: the blue color.
1715%
1716*/
1717WandExport void PixelSetBlueQuantum(PixelWand *wand,const Quantum blue)
1718{
1719 assert(wand != (const PixelWand *) NULL);
1720 assert(wand->signature == WandSignature);
1721 if (wand->debug != MagickFalse)
1722 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1723 wand->pixel.blue=(MagickRealType) blue;
1724}
1725
1726/*
1727%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1728% %
1729% %
1730% %
1731% P i x e l S e t C o l o r %
1732% %
1733% %
1734% %
1735%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1736%
1737% PixelSetColor() sets the color of the pixel wand with a string (e.g.
1738% "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).
1739%
1740% The format of the PixelSetColor method is:
1741%
1742% MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
1743%
1744% A description of each parameter follows:
1745%
1746% o wand: the pixel wand.
1747%
1748% o color: the pixel wand color.
1749%
1750*/
1751WandExport MagickBooleanType PixelSetColor(PixelWand *wand,const char *color)
1752{
1753 MagickBooleanType
1754 status;
1755
cristy4c08aed2011-07-01 19:47:50 +00001756 PixelInfo
cristy3ed852e2009-09-05 21:47:34 +00001757 pixel;
1758
1759 assert(wand != (const PixelWand *) NULL);
1760 assert(wand->signature == WandSignature);
1761 if (wand->debug != MagickFalse)
1762 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy9950d572011-10-01 18:22:35 +00001763 status=QueryMagickColorCompliance(color,AllCompliance,&pixel,wand->exception);
cristy3ed852e2009-09-05 21:47:34 +00001764 if (status != MagickFalse)
1765 wand->pixel=pixel;
1766 return(status);
1767}
1768
1769/*
1770%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1771% %
1772% %
1773% %
1774% P i x e l S e t C o l o r C o u n t %
1775% %
1776% %
1777% %
1778%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1779%
1780% PixelSetColorCount() sets the color count of the pixel wand.
1781%
1782% The format of the PixelSetColorCount method is:
1783%
cristybb503372010-05-27 20:51:26 +00001784% void PixelSetColorCount(PixelWand *wand,const size_t count)
cristy3ed852e2009-09-05 21:47:34 +00001785%
1786% A description of each parameter follows:
1787%
1788% o wand: the pixel wand.
1789%
1790% o count: the number of this particular color.
1791%
1792*/
cristybb503372010-05-27 20:51:26 +00001793WandExport void PixelSetColorCount(PixelWand *wand,const size_t count)
cristy3ed852e2009-09-05 21:47:34 +00001794{
1795 assert(wand != (const PixelWand *) NULL);
1796 assert(wand->signature == WandSignature);
1797 if (wand->debug != MagickFalse)
1798 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1799 wand->count=count;
1800}
1801
1802/*
1803%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1804% %
1805% %
1806% %
1807% P i x e l S e t C o l o r F r o m W a n d %
1808% %
1809% %
1810% %
1811%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1812%
1813% PixelSetColorFromWand() sets the color of the pixel wand.
1814%
1815% The format of the PixelSetColorFromWand method is:
1816%
1817% PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
1818%
1819% A description of each parameter follows:
1820%
1821% o wand: the pixel wand.
1822%
1823% o color: set the pixel wand color here.
1824%
1825*/
1826WandExport void PixelSetColorFromWand(PixelWand *wand,const PixelWand *color)
1827{
1828 assert(wand != (const PixelWand *) NULL);
1829 assert(wand->signature == WandSignature);
1830 if (wand->debug != MagickFalse)
1831 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1832 assert(color != (const PixelWand *) NULL);
1833 wand->pixel=color->pixel;
1834}
1835
1836/*
1837%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1838% %
1839% %
1840% %
1841% P i x e l S e t C y a n %
1842% %
1843% %
1844% %
1845%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1846%
1847% PixelSetCyan() sets the normalized cyan color of the pixel wand.
1848%
1849% The format of the PixelSetCyan method is:
1850%
1851% void PixelSetCyan(PixelWand *wand,const double cyan)
1852%
1853% A description of each parameter follows:
1854%
1855% o wand: the pixel wand.
1856%
1857% o cyan: the cyan color.
1858%
1859*/
1860WandExport void PixelSetCyan(PixelWand *wand,const double cyan)
1861{
1862 assert(wand != (const PixelWand *) NULL);
1863 assert(wand->signature == WandSignature);
1864 if (wand->debug != MagickFalse)
1865 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001866 wand->pixel.red=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001867 QuantumRange*cyan);
1868}
1869
1870/*
1871%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1872% %
1873% %
1874% %
1875% P i x e l S e t C y a n Q u a n t u m %
1876% %
1877% %
1878% %
1879%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1880%
1881% PixelSetCyanQuantum() sets the cyan color of the pixel wand.
1882%
1883% The format of the PixelSetCyanQuantum method is:
1884%
1885% void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
1886%
1887% A description of each parameter follows:
1888%
1889% o wand: the pixel wand.
1890%
1891% o cyan: the cyan color.
1892%
1893*/
1894WandExport void PixelSetCyanQuantum(PixelWand *wand,const Quantum cyan)
1895{
1896 assert(wand != (const PixelWand *) NULL);
1897 assert(wand->signature == WandSignature);
1898 if (wand->debug != MagickFalse)
1899 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1900 wand->pixel.red=(MagickRealType) cyan;
1901}
1902
1903/*
1904%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1905% %
1906% %
1907% %
1908% P i x e l S e t F u z z %
1909% %
1910% %
1911% %
1912%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1913%
1914% PixelSetFuzz() sets the fuzz value of the pixel wand.
1915%
1916% The format of the PixelSetFuzz method is:
1917%
1918% void PixelSetFuzz(PixelWand *wand,const double fuzz)
1919%
1920% A description of each parameter follows:
1921%
1922% o wand: the pixel wand.
1923%
1924% o fuzz: the fuzz value.
1925%
1926*/
1927WandExport void PixelSetFuzz(PixelWand *wand,const double fuzz)
1928{
1929 assert(wand != (const PixelWand *) NULL);
1930 assert(wand->signature == WandSignature);
1931 if (wand->debug != MagickFalse)
1932 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
1933 wand->pixel.fuzz=(MagickRealType) fuzz;
1934}
1935
1936/*
1937%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1938% %
1939% %
1940% %
1941% P i x e l S e t G r e e n %
1942% %
1943% %
1944% %
1945%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1946%
1947% PixelSetGreen() sets the normalized green color of the pixel wand.
1948%
1949% The format of the PixelSetGreen method is:
1950%
1951% void PixelSetGreen(PixelWand *wand,const double green)
1952%
1953% A description of each parameter follows:
1954%
1955% o wand: the pixel wand.
1956%
1957% o green: the green color.
1958%
1959*/
1960WandExport void PixelSetGreen(PixelWand *wand,const double green)
1961{
1962 assert(wand != (const PixelWand *) NULL);
1963 assert(wand->signature == WandSignature);
1964 if (wand->debug != MagickFalse)
1965 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00001966 wand->pixel.green=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00001967 QuantumRange*green);
1968}
1969
1970/*
1971%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1972% %
1973% %
1974% %
1975% P i x e l S e t G r e e n Q u a n t u m %
1976% %
1977% %
1978% %
1979%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1980%
1981% PixelSetGreenQuantum() sets the green color of the pixel wand.
1982%
1983% The format of the PixelSetGreenQuantum method is:
1984%
1985% void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
1986%
1987% A description of each parameter follows:
1988%
1989% o wand: the pixel wand.
1990%
1991% o green: the green color.
1992%
1993*/
1994WandExport void PixelSetGreenQuantum(PixelWand *wand,const Quantum green)
1995{
1996 assert(wand != (const PixelWand *) NULL);
1997 assert(wand->signature == WandSignature);
1998 if (wand->debug != MagickFalse)
1999 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2000 wand->pixel.green=(MagickRealType) green;
2001}
2002
2003/*
2004%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2005% %
2006% %
2007% %
2008% P i x e l S e t H S L %
2009% %
2010% %
2011% %
2012%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2013%
2014% PixelSetHSL() sets the normalized HSL color of the pixel wand.
2015%
2016% The format of the PixelSetHSL method is:
2017%
2018% void PixelSetHSL(PixelWand *wand,const double hue,
2019% const double saturation,const double lightness)
2020%
2021% A description of each parameter follows:
2022%
2023% o wand: the pixel wand.
2024%
2025% o hue,saturation,lightness: Return the pixel hue, saturation, and
2026% brightness.
2027%
2028*/
2029WandExport void PixelSetHSL(PixelWand *wand,const double hue,
2030 const double saturation,const double lightness)
2031{
cristy3094b7f2011-10-01 23:18:02 +00002032 double
cristy3ed852e2009-09-05 21:47:34 +00002033 blue,
2034 green,
2035 red;
2036
2037 assert(wand != (const PixelWand *) NULL);
2038 assert(wand->signature == WandSignature);
2039 if (wand->debug != MagickFalse)
2040 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2041 ConvertHSLToRGB(hue,saturation,lightness,&red,&green,&blue);
2042 wand->pixel.red=(MagickRealType) red;
2043 wand->pixel.green=(MagickRealType) green;
2044 wand->pixel.blue=(MagickRealType) blue;
2045}
2046
2047/*
2048%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2049% %
2050% %
2051% %
2052% P i x e l S e t I n d e x %
2053% %
2054% %
2055% %
2056%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2057%
2058% PixelSetIndex() sets the colormap index of the pixel wand.
2059%
2060% The format of the PixelSetIndex method is:
2061%
cristy4c08aed2011-07-01 19:47:50 +00002062% void PixelSetIndex(PixelWand *wand,const Quantum index)
cristy3ed852e2009-09-05 21:47:34 +00002063%
2064% A description of each parameter follows:
2065%
2066% o wand: the pixel wand.
2067%
2068% o index: the colormap index.
2069%
2070*/
cristy4c08aed2011-07-01 19:47:50 +00002071WandExport void PixelSetIndex(PixelWand *wand,const Quantum index)
cristy3ed852e2009-09-05 21:47:34 +00002072{
2073 assert(wand != (const PixelWand *) NULL);
2074 assert(wand->signature == WandSignature);
2075 if (wand->debug != MagickFalse)
2076 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2077 wand->pixel.index=(MagickRealType) index;
2078}
2079
2080/*
2081%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2082% %
2083% %
2084% %
2085% P i x e l S e t M a g e n t a %
2086% %
2087% %
2088% %
2089%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2090%
2091% PixelSetMagenta() sets the normalized magenta color of the pixel wand.
2092%
2093% The format of the PixelSetMagenta method is:
2094%
2095% void PixelSetMagenta(PixelWand *wand,const double magenta)
2096%
2097% A description of each parameter follows:
2098%
2099% o wand: the pixel wand.
2100%
2101% o magenta: the magenta color.
2102%
2103*/
2104WandExport void PixelSetMagenta(PixelWand *wand,const double magenta)
2105{
2106 assert(wand != (const PixelWand *) NULL);
2107 assert(wand->signature == WandSignature);
2108 if (wand->debug != MagickFalse)
2109 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00002110 wand->pixel.green=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002111 QuantumRange*magenta);
2112}
2113
2114/*
2115%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2116% %
2117% %
2118% %
2119% P i x e l S e t M a g e n t a Q u a n t u m %
2120% %
2121% %
2122% %
2123%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2124%
2125% PixelSetMagentaQuantum() sets the magenta color of the pixel wand.
2126%
2127% The format of the PixelSetMagentaQuantum method is:
2128%
2129% void PixelSetMagentaQuantum(PixelWand *wand,
2130% const Quantum magenta)
2131%
2132% A description of each parameter follows:
2133%
2134% o wand: the pixel wand.
2135%
2136% o magenta: the green magenta.
2137%
2138*/
2139WandExport void PixelSetMagentaQuantum(PixelWand *wand,const Quantum magenta)
2140{
2141 assert(wand != (const PixelWand *) NULL);
2142 assert(wand->signature == WandSignature);
2143 if (wand->debug != MagickFalse)
2144 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2145 wand->pixel.green=(MagickRealType) magenta;
2146}
2147
2148/*
2149%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2150% %
2151% %
2152% %
2153% P i x e l S e t M a g i c k C o l o r %
2154% %
2155% %
2156% %
2157%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2158%
cristy4c08aed2011-07-01 19:47:50 +00002159% PixelSetPixelInfo() sets the color of the pixel wand.
cristy3ed852e2009-09-05 21:47:34 +00002160%
cristy4c08aed2011-07-01 19:47:50 +00002161% The format of the PixelSetPixelInfo method is:
cristy3ed852e2009-09-05 21:47:34 +00002162%
cristy4c08aed2011-07-01 19:47:50 +00002163% PixelSetPixelInfo(PixelWand *wand,const PixelInfo *color)
cristy3ed852e2009-09-05 21:47:34 +00002164%
2165% A description of each parameter follows:
2166%
2167% o wand: the pixel wand.
2168%
2169% o color: the pixel wand color.
2170%
2171*/
cristy4c08aed2011-07-01 19:47:50 +00002172WandExport void PixelSetPixelInfo(PixelWand *wand,
2173 const PixelInfo *color)
cristy3ed852e2009-09-05 21:47:34 +00002174{
2175 assert(wand != (const PixelWand *) NULL);
2176 assert(wand->signature == WandSignature);
2177 if (wand->debug != MagickFalse)
2178 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00002179 assert(color != (const PixelInfo *) NULL);
cristy3ed852e2009-09-05 21:47:34 +00002180 wand->pixel=(*color);
2181}
2182
2183/*
2184%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2185% %
2186% %
2187% %
2188% P i x e l S e t O p a c i t y %
2189% %
2190% %
2191% %
2192%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2193%
2194% PixelSetOpacity() sets the normalized opacity color of the pixel wand.
2195%
2196% The format of the PixelSetOpacity method is:
2197%
2198% void PixelSetOpacity(PixelWand *wand,const double opacity)
2199%
2200% A description of each parameter follows:
2201%
2202% o wand: the pixel wand.
2203%
2204% o opacity: the opacity color.
2205%
2206*/
2207WandExport void PixelSetOpacity(PixelWand *wand,const double opacity)
2208{
2209 assert(wand != (const PixelWand *) NULL);
2210 assert(wand->signature == WandSignature);
2211 if (wand->debug != MagickFalse)
2212 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2213 wand->pixel.matte=MagickTrue;
cristy4c08aed2011-07-01 19:47:50 +00002214 wand->pixel.alpha=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002215 QuantumRange*opacity);
2216}
2217
2218/*
2219%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2220% %
2221% %
2222% %
2223% P i x e l S e t O p a c i t y Q u a n t u m %
2224% %
2225% %
2226% %
2227%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2228%
2229% PixelSetOpacityQuantum() sets the opacity color of the pixel wand.
2230%
2231% The format of the PixelSetOpacityQuantum method is:
2232%
2233% void PixelSetOpacityQuantum(PixelWand *wand,
2234% const Quantum opacity)
2235%
2236% A description of each parameter follows:
2237%
2238% o wand: the pixel wand.
2239%
2240% o opacity: the opacity color.
2241%
2242*/
2243WandExport void PixelSetOpacityQuantum(PixelWand *wand,const Quantum opacity)
2244{
2245 assert(wand != (const PixelWand *) NULL);
2246 assert(wand->signature == WandSignature);
2247 if (wand->debug != MagickFalse)
2248 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00002249 wand->pixel.alpha=(MagickRealType) opacity;
cristy3ed852e2009-09-05 21:47:34 +00002250}
2251
2252/*
2253%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2254% %
2255% %
2256% %
cristy4c08aed2011-07-01 19:47:50 +00002257% 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 +00002258% %
2259% %
2260% %
2261%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2262%
cristy4c08aed2011-07-01 19:47:50 +00002263% PixelSetQuantumPacket() sets the packet of the pixel wand.
cristy3ed852e2009-09-05 21:47:34 +00002264%
cristy4c08aed2011-07-01 19:47:50 +00002265% The format of the PixelSetQuantumPacket method is:
cristy3ed852e2009-09-05 21:47:34 +00002266%
cristy4c08aed2011-07-01 19:47:50 +00002267% PixelSetQuantumPacket(PixelWand *wand,const PixelPacket *packet)
cristy3ed852e2009-09-05 21:47:34 +00002268%
2269% A description of each parameter follows:
2270%
2271% o wand: the pixel wand.
2272%
cristy4c08aed2011-07-01 19:47:50 +00002273% o packet: the pixel wand packet.
cristy3ed852e2009-09-05 21:47:34 +00002274%
2275*/
cristy4c08aed2011-07-01 19:47:50 +00002276WandExport void PixelSetQuantumPacket(PixelWand *wand,const PixelPacket *packet)
cristy3ed852e2009-09-05 21:47:34 +00002277{
2278 assert(wand != (const PixelWand *) NULL);
2279 assert(wand->signature == WandSignature);
2280 if (wand->debug != MagickFalse)
2281 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristy4c08aed2011-07-01 19:47:50 +00002282 assert(packet != (PixelPacket *) NULL);
2283 wand->pixel.red=(MagickRealType) packet->red;
2284 wand->pixel.green=(MagickRealType) packet->green;
2285 wand->pixel.blue=(MagickRealType) packet->blue;
2286 wand->pixel.black=(MagickRealType) packet->black;
2287 wand->pixel.alpha=(MagickRealType) packet->alpha;
2288 wand->pixel.matte=packet->alpha != OpaqueAlpha ? MagickTrue : MagickFalse;
2289}
2290
2291/*
2292%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2293% %
2294% %
2295% %
2296% P i x e l S e t Q u a n t u m P i x e l %
2297% %
2298% %
2299% %
2300%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2301%
2302% PixelSetQuantumPixel() sets the pixel of the pixel wand.
2303%
2304% The format of the PixelSetQuantumPixel method is:
2305%
2306% PixelSetQuantumPixel(const Image *image,const QixelPixel *pixel,
2307% PixelWand *wand)
2308%
2309% A description of each parameter follows:
2310%
2311% o wand: the pixel wand.
2312%
2313% o pixel: the pixel wand pixel.
2314%
2315*/
2316WandExport void PixelSetQuantumPixel(const Image *image,const Quantum *pixel,
2317 PixelWand *wand)
2318{
2319 assert(wand != (const PixelWand *) NULL);
2320 assert(wand->signature == WandSignature);
2321 if (wand->debug != MagickFalse)
2322 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2323 assert(pixel != (Quantum *) NULL);
2324 wand->pixel.red=(MagickRealType) GetPixelRed(image,pixel);
2325 wand->pixel.green=(MagickRealType) GetPixelGreen(image,pixel);
2326 wand->pixel.blue=(MagickRealType) GetPixelBlue(image,pixel);
2327 wand->pixel.black=(MagickRealType) GetPixelBlack(image,pixel);
2328 wand->pixel.alpha=(MagickRealType) GetPixelAlpha(image,pixel);
2329 wand->pixel.matte=GetPixelAlpha(image,pixel) != OpaqueAlpha ? MagickTrue :
2330 MagickFalse;
cristy3ed852e2009-09-05 21:47:34 +00002331}
2332
2333/*
2334%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2335% %
2336% %
2337% %
2338% P i x e l S e t R e d %
2339% %
2340% %
2341% %
2342%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2343%
2344% PixelSetRed() sets the normalized red color of the pixel wand.
2345%
2346% The format of the PixelSetRed method is:
2347%
2348% void PixelSetRed(PixelWand *wand,const double red)
2349%
2350% A description of each parameter follows:
2351%
2352% o wand: the pixel wand.
2353%
2354% o red: the red color.
2355%
2356*/
2357WandExport void PixelSetRed(PixelWand *wand,const double red)
2358{
2359 assert(wand != (const PixelWand *) NULL);
2360 assert(wand->signature == WandSignature);
2361 if (wand->debug != MagickFalse)
2362 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00002363 wand->pixel.red=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002364 QuantumRange*red);
2365}
2366
2367/*
2368%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2369% %
2370% %
2371% %
2372% P i x e l S e t R e d Q u a n t u m %
2373% %
2374% %
2375% %
2376%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2377%
2378% PixelSetRedQuantum() sets the red color of the pixel wand.
2379%
2380% The format of the PixelSetRedQuantum method is:
2381%
2382% void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
2383%
2384% A description of each parameter follows:
2385%
2386% o wand: the pixel wand.
2387%
2388% o red: the red color.
2389%
2390*/
2391WandExport void PixelSetRedQuantum(PixelWand *wand,const Quantum red)
2392{
2393 assert(wand != (const PixelWand *) NULL);
2394 assert(wand->signature == WandSignature);
2395 if (wand->debug != MagickFalse)
2396 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2397 wand->pixel.red=(MagickRealType) red;
2398}
2399
2400/*
2401%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2402% %
2403% %
2404% %
2405% P i x e l S e t Y e l l o w %
2406% %
2407% %
2408% %
2409%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2410%
2411% PixelSetYellow() sets the normalized yellow color of the pixel wand.
2412%
2413% The format of the PixelSetYellow method is:
2414%
2415% void PixelSetYellow(PixelWand *wand,const double yellow)
2416%
2417% A description of each parameter follows:
2418%
2419% o wand: the pixel wand.
2420%
2421% o yellow: the yellow color.
2422%
2423*/
2424WandExport void PixelSetYellow(PixelWand *wand,const double yellow)
2425{
2426 assert(wand != (const PixelWand *) NULL);
2427 assert(wand->signature == WandSignature);
2428 if (wand->debug != MagickFalse)
2429 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
cristyce70c172010-01-07 17:15:30 +00002430 wand->pixel.blue=(MagickRealType) ClampToQuantum((MagickRealType)
cristy3ed852e2009-09-05 21:47:34 +00002431 QuantumRange*yellow);
2432}
2433
2434/*
2435%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2436% %
2437% %
2438% %
2439% P i x e l S e t Y e l l o w Q u a n t u m %
2440% %
2441% %
2442% %
2443%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2444%
2445% PixelSetYellowQuantum() sets the yellow color of the pixel wand.
2446%
2447% The format of the PixelSetYellowQuantum method is:
2448%
2449% void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
2450%
2451% A description of each parameter follows:
2452%
2453% o wand: the pixel wand.
2454%
2455% o yellow: the yellow color.
2456%
2457*/
2458WandExport void PixelSetYellowQuantum(PixelWand *wand,const Quantum yellow)
2459{
2460 assert(wand != (const PixelWand *) NULL);
2461 assert(wand->signature == WandSignature);
2462 if (wand->debug != MagickFalse)
2463 (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
2464 wand->pixel.blue=(MagickRealType) yellow;
2465}