2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6 % QQQ U U AAA N N TTTTT U U M M %
7 % Q Q U U A A NN N T U U MM MM %
8 % Q Q U U AAAAA N N N T U U M M M %
9 % Q QQ U U A A N NN T U U M M %
10 % QQQQ UUU A A N N T UUU M M %
12 % IIIII M M PPPP OOO RRRR TTTTT %
13 % I MM MM P P O O R R T %
14 % I M M M PPPP O O RRRR T %
16 % IIIII M M P OOO R R T %
18 % MagickCore Methods to Import Quantum Pixels %
25 % Copyright 1999-2008 ImageMagick Studio LLC, a non-profit organization %
26 % dedicated to making software imaging solutions freely available. %
28 % You may not use this file except in compliance with the License. You may %
29 % obtain a copy of the License at %
31 % http://www.imagemagick.org/script/license.php %
33 % Unless required by applicable law or agreed to in writing, software %
34 % distributed under the License is distributed on an "AS IS" BASIS, %
35 % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
36 % See the License for the specific language governing permissions and %
37 % limitations under the License. %
39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 #include "magick/studio.h"
48 #include "magick/property.h"
49 #include "magick/blob.h"
50 #include "magick/blob-private.h"
51 #include "magick/color-private.h"
52 #include "magick/exception.h"
53 #include "magick/exception-private.h"
54 #include "magick/cache.h"
55 #include "magick/constitute.h"
56 #include "magick/delegate.h"
57 #include "magick/geometry.h"
58 #include "magick/list.h"
59 #include "magick/magick.h"
60 #include "magick/memory_.h"
61 #include "magick/monitor.h"
62 #include "magick/option.h"
63 #include "magick/pixel.h"
64 #include "magick/pixel-private.h"
65 #include "magick/quantum.h"
66 #include "magick/quantum-private.h"
67 #include "magick/resource_.h"
68 #include "magick/semaphore.h"
69 #include "magick/statistic.h"
70 #include "magick/stream.h"
71 #include "magick/string_.h"
72 #include "magick/utility.h"
75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
79 % I m p o r t Q u a n t u m P i x e l s %
83 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
85 % ImportQuantumPixels() transfers one or more pixel components from a user
86 % supplied buffer into the image pixel cache of an image. The pixels are
87 % expected in network byte order. It returns MagickTrue if the pixels are
88 % successfully transferred, otherwise MagickFalse.
90 % The format of the ImportQuantumPixels method is:
92 % size_t ImportQuantumPixels(Image *image,CacheView *image_view,
93 % const QuantumInfo *quantum_info,const QuantumType quantum_type,
94 % const unsigned char *pixels,ExceptionInfo *exception)
96 % A description of each parameter follows:
100 % o image_view: the image cache view.
102 % o quantum_info: the quantum info.
104 % o quantum_type: Declare which pixel components to transfer (red, green,
105 % blue, opacity, RGB, or RGBA).
107 % o pixels: The pixel components are transferred from this buffer.
109 % o exception: return any errors or warnings in this structure.
113 static inline IndexPacket PushColormapIndex(Image *image,
114 const size_t index,MagickBooleanType *range_exception)
116 if (index < image->colors)
117 return((IndexPacket) index);
118 *range_exception=MagickTrue;
119 return((IndexPacket) 0);
122 static inline const unsigned char *PushDoublePixel(
123 const QuantumState *quantum_state,const unsigned char *pixels,double *pixel)
131 if (quantum_state->endian != LSBEndian)
133 quantum[7]=(*pixels++);
134 quantum[6]=(*pixels++);
135 quantum[5]=(*pixels++);
136 quantum[5]=(*pixels++);
137 quantum[3]=(*pixels++);
138 quantum[2]=(*pixels++);
139 quantum[1]=(*pixels++);
140 quantum[0]=(*pixels++);
141 p=(double *) quantum;
143 *pixel-=quantum_state->minimum;
144 *pixel*=quantum_state->scale;
147 quantum[0]=(*pixels++);
148 quantum[1]=(*pixels++);
149 quantum[2]=(*pixels++);
150 quantum[3]=(*pixels++);
151 quantum[4]=(*pixels++);
152 quantum[5]=(*pixels++);
153 quantum[6]=(*pixels++);
154 quantum[7]=(*pixels++);
155 p=(double *) quantum;
157 *pixel-=quantum_state->minimum;
158 *pixel*=quantum_state->scale;
162 static inline const unsigned char *PushFloatPixel(
163 const QuantumState *quantum_state,const unsigned char *pixels,float *pixel)
171 if (quantum_state->endian != LSBEndian)
173 quantum[3]=(*pixels++);
174 quantum[2]=(*pixels++);
175 quantum[1]=(*pixels++);
176 quantum[0]=(*pixels++);
179 *pixel-=quantum_state->minimum;
180 *pixel*=quantum_state->scale;
183 quantum[0]=(*pixels++);
184 quantum[1]=(*pixels++);
185 quantum[2]=(*pixels++);
186 quantum[3]=(*pixels++);
189 *pixel-=quantum_state->minimum;
190 *pixel*=quantum_state->scale;
194 static inline const unsigned char *PushQuantumPixel(
195 QuantumState *quantum_state,const size_t depth,
196 const unsigned char *pixels,unsigned int *quantum)
204 *quantum=(QuantumAny) 0;
205 for (i=(ssize_t) depth; i > 0L; )
207 if (quantum_state->bits == 0UL)
209 quantum_state->pixel=(*pixels++);
210 quantum_state->bits=8UL;
212 quantum_bits=(size_t) i;
213 if (quantum_bits > quantum_state->bits)
214 quantum_bits=quantum_state->bits;
215 i-=(ssize_t) quantum_bits;
216 quantum_state->bits-=quantum_bits;
217 *quantum=(unsigned int) ((*quantum << quantum_bits) |
218 ((quantum_state->pixel >> quantum_state->bits) &~ ((~0UL) <<
224 static inline const unsigned char *PushQuantumLongPixel(
225 QuantumState *quantum_state,const size_t depth,
226 const unsigned char *pixels,unsigned int *quantum)
235 for (i=(ssize_t) depth; i > 0; )
237 if (quantum_state->bits == 0)
239 pixels=PushLongPixel(quantum_state->endian,pixels,
240 &quantum_state->pixel);
241 quantum_state->bits=32U;
243 quantum_bits=(size_t) i;
244 if (quantum_bits > quantum_state->bits)
245 quantum_bits=quantum_state->bits;
246 *quantum|=(((quantum_state->pixel >> (32U-quantum_state->bits)) &
247 quantum_state->mask[quantum_bits]) << (depth-i));
248 i-=(ssize_t) quantum_bits;
249 quantum_state->bits-=quantum_bits;
254 MagickExport size_t ImportQuantumPixels(Image *image,CacheView *image_view,
255 const QuantumInfo *quantum_info,const QuantumType quantum_type,
256 const unsigned char *pixels,ExceptionInfo *exception)
270 register const unsigned char
291 assert(image != (Image *) NULL);
292 assert(image->signature == MagickSignature);
293 if (image->debug != MagickFalse)
294 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
295 assert(quantum_info != (QuantumInfo *) NULL);
296 assert(quantum_info->signature == MagickSignature);
297 if (pixels == (const unsigned char *) NULL)
298 pixels=GetQuantumPixels(quantum_info);
301 if (image_view == (CacheView *) NULL)
303 number_pixels=GetImageExtent(image);
304 q=GetAuthenticPixelQueue(image);
305 indexes=GetAuthenticIndexQueue(image);
309 number_pixels=GetCacheViewExtent(image_view);
310 q=GetCacheViewAuthenticPixelQueue(image_view);
311 indexes=GetCacheViewAuthenticIndexQueue(image_view);
313 InitializeQuantumState(quantum_info,image->endian,&quantum_state);
314 extent=GetQuantumExtent(image,quantum_info,quantum_type);
315 endian=quantum_state.endian;
316 switch (quantum_type)
323 if (image->storage_class != PseudoClass)
325 (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
326 "ColormappedImageRequired","`%s'",image->filename);
329 range_exception=MagickFalse;
330 switch (quantum_info->depth)
334 register unsigned char
337 for (x=0; x < ((ssize_t) number_pixels-7); x+=8)
339 for (bit=0; bit < 8; bit++)
341 if (quantum_info->min_is_white == MagickFalse)
342 pixel=(unsigned char) (((*p) & (1 << (7-bit))) == 0 ?
345 pixel=(unsigned char) (((*p) & (1 << (7-bit))) != 0 ?
347 SetIndexPixelComponent(indexes+x+bit,PushColormapIndex(image,
348 pixel,&range_exception));
349 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
350 GetIndexPixelComponent(indexes+x+bit));
355 for (bit=0; bit < (ssize_t) (number_pixels % 8); bit++)
357 if (quantum_info->min_is_white == MagickFalse)
358 pixel=(unsigned char) (((*p) & (1 << (7-bit))) == 0 ?
361 pixel=(unsigned char) (((*p) & (1 << (7-bit))) != 0 ?
363 SetIndexPixelComponent(indexes+x+bit,PushColormapIndex(image,pixel,
365 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
366 GetIndexPixelComponent(indexes+x+bit));
373 register unsigned char
376 for (x=0; x < ((ssize_t) number_pixels-1); x+=2)
378 pixel=(unsigned char) ((*p >> 4) & 0xf);
379 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
381 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
382 GetIndexPixelComponent(indexes+x));
384 pixel=(unsigned char) ((*p) & 0xf);
385 SetIndexPixelComponent(indexes+x+1,PushColormapIndex(image,pixel,
387 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
388 GetIndexPixelComponent(indexes+x+1));
392 for (bit=0; bit < (ssize_t) (number_pixels % 2); bit++)
394 pixel=(unsigned char) ((*p++ >> 4) & 0xf);
395 SetIndexPixelComponent(indexes+x+bit,PushColormapIndex(image,pixel,
397 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
398 GetIndexPixelComponent(indexes+x+bit));
408 for (x=0; x < (ssize_t) number_pixels; x++)
410 p=PushCharPixel(p,&pixel);
411 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
413 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
414 GetIndexPixelComponent(indexes+x));
415 p+=quantum_info->pad;
425 if (quantum_info->format == FloatingPointQuantumFormat)
427 for (x=0; x < (ssize_t) number_pixels; x++)
429 p=PushShortPixel(endian,p,&pixel);
430 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,
431 ClampToQuantum((MagickRealType) QuantumRange*
432 HalfToSinglePrecision(pixel)),&range_exception));
433 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
434 GetIndexPixelComponent(indexes+x));
435 p+=quantum_info->pad;
440 for (x=0; x < (ssize_t) number_pixels; x++)
442 p=PushShortPixel(endian,p,&pixel);
443 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
445 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
446 GetIndexPixelComponent(indexes+x));
447 p+=quantum_info->pad;
457 if (quantum_info->format == FloatingPointQuantumFormat)
462 for (x=0; x < (ssize_t) number_pixels; x++)
464 p=PushFloatPixel(&quantum_state,p,&pixel);
465 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,
466 ClampToQuantum(pixel),&range_exception));
467 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
468 GetIndexPixelComponent(indexes+x));
469 p+=quantum_info->pad;
474 for (x=0; x < (ssize_t) number_pixels; x++)
476 p=PushLongPixel(endian,p,&pixel);
477 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
479 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
480 GetIndexPixelComponent(indexes+x));
481 p+=quantum_info->pad;
488 if (quantum_info->format == FloatingPointQuantumFormat)
493 for (x=0; x < (ssize_t) number_pixels; x++)
495 p=PushDoublePixel(&quantum_state,p,&pixel);
496 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,
497 ClampToQuantum(pixel),&range_exception));
498 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
499 GetIndexPixelComponent(indexes+x));
500 p+=quantum_info->pad;
508 for (x=0; x < (ssize_t) number_pixels; x++)
510 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
511 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
513 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
514 GetIndexPixelComponent(indexes+x));
515 p+=quantum_info->pad;
521 if (range_exception != MagickFalse)
522 (void) ThrowMagickException(exception,GetMagickModule(),
523 CorruptImageError,"InvalidColormapIndex","`%s'",image->filename);
526 case IndexAlphaQuantum:
531 if (image->storage_class != PseudoClass)
533 (void) ThrowMagickException(exception,GetMagickModule(),
534 ImageError,"ColormappedImageRequired","`%s'",image->filename);
537 range_exception=MagickFalse;
538 switch (quantum_info->depth)
542 register unsigned char
545 for (x=0; x < ((ssize_t) number_pixels-3); x+=4)
547 for (bit=0; bit < 8; bit+=2)
549 if (quantum_info->min_is_white == MagickFalse)
550 pixel=(unsigned char) (((*p) & (1 << (7-bit))) == 0 ?
553 pixel=(unsigned char) (((*p) & (1 << (7-bit))) != 0 ?
555 SetIndexPixelComponent(indexes+x+bit/2,pixel == 0 ? 0 : 1);
556 SetRedPixelComponent(q,pixel == 0 ? 0 : QuantumRange);
557 SetGreenPixelComponent(q,GetRedPixelComponent(q));
558 SetBluePixelComponent(q,GetRedPixelComponent(q));
559 SetOpacityPixelComponent(q,((*p) & (1UL << (unsigned char)
560 (6-bit))) == 0 ? TransparentOpacity : OpaqueOpacity);
564 for (bit=0; bit < (ssize_t) (number_pixels % 4); bit+=2)
566 if (quantum_info->min_is_white == MagickFalse)
567 pixel=(unsigned char) (((*p) & (1 << (7-bit))) == 0 ?
570 pixel=(unsigned char) (((*p) & (1 << (7-bit))) != 0 ?
572 SetIndexPixelComponent(indexes+x+bit/2,pixel == 0 ? 0 : 1);
573 SetRedPixelComponent(q,pixel == 0 ? 0 : QuantumRange);
574 SetGreenPixelComponent(q,GetRedPixelComponent(q));
575 SetBluePixelComponent(q,GetRedPixelComponent(q));
576 SetOpacityPixelComponent(q,((*p) & (1UL << (unsigned char)
577 (6-bit))) == 0 ? TransparentOpacity : OpaqueOpacity);
584 register unsigned char
587 range=GetQuantumRange(image->depth);
588 for (x=0; x < (ssize_t) number_pixels; x++)
590 pixel=(unsigned char) ((*p >> 4) & 0xf);
591 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
593 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
594 GetIndexPixelComponent(indexes+x));
595 pixel=(unsigned char) ((*p) & 0xf);
596 SetOpacityPixelComponent(q,QuantumRange-ScaleAnyToQuantum(pixel,
608 for (x=0; x < (ssize_t) number_pixels; x++)
610 p=PushCharPixel(p,&pixel);
611 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
613 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
614 GetIndexPixelComponent(indexes+x));
615 p=PushCharPixel(p,&pixel);
616 SetOpacityPixelComponent(q,QuantumRange-ScaleCharToQuantum(pixel));
617 p+=quantum_info->pad;
627 if (quantum_info->format == FloatingPointQuantumFormat)
629 for (x=0; x < (ssize_t) number_pixels; x++)
631 p=PushShortPixel(endian,p,&pixel);
632 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,
633 ClampToQuantum((MagickRealType) QuantumRange*
634 HalfToSinglePrecision(pixel)),&range_exception));
635 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
636 GetIndexPixelComponent(indexes+x));
637 p=PushShortPixel(endian,p,&pixel);
638 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(
639 (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)));
640 p+=quantum_info->pad;
645 for (x=0; x < (ssize_t) number_pixels; x++)
647 p=PushShortPixel(endian,p,&pixel);
648 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
650 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
651 GetIndexPixelComponent(indexes+x));
652 p=PushShortPixel(endian,p,&pixel);
653 SetOpacityPixelComponent(q,QuantumRange-ScaleShortToQuantum(pixel));
654 p+=quantum_info->pad;
664 if (quantum_info->format == FloatingPointQuantumFormat)
669 for (x=0; x < (ssize_t) number_pixels; x++)
671 p=PushFloatPixel(&quantum_state,p,&pixel);
672 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,
673 ClampToQuantum(pixel),&range_exception));
674 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
675 GetIndexPixelComponent(indexes+x));
676 p=PushFloatPixel(&quantum_state,p,&pixel);
677 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
678 p+=quantum_info->pad;
683 for (x=0; x < (ssize_t) number_pixels; x++)
685 p=PushLongPixel(endian,p,&pixel);
686 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
688 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
689 GetIndexPixelComponent(indexes+x));
690 p=PushLongPixel(endian,p,&pixel);
691 SetOpacityPixelComponent(q,QuantumRange-ScaleLongToQuantum(pixel));
692 p+=quantum_info->pad;
699 if (quantum_info->format == FloatingPointQuantumFormat)
704 for (x=0; x < (ssize_t) number_pixels; x++)
706 p=PushDoublePixel(&quantum_state,p,&pixel);
707 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,
708 ClampToQuantum(pixel),&range_exception));
709 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
710 GetIndexPixelComponent(indexes+x));
711 p=PushDoublePixel(&quantum_state,p,&pixel);
712 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
713 p+=quantum_info->pad;
721 range=GetQuantumRange(image->depth);
722 for (x=0; x < (ssize_t) number_pixels; x++)
724 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
725 SetIndexPixelComponent(indexes+x,PushColormapIndex(image,pixel,
727 SetRGBOPixelComponents(q,image->colormap+(ssize_t)
728 GetIndexPixelComponent(indexes+x));
729 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
730 SetOpacityPixelComponent(q,QuantumRange-ScaleAnyToQuantum(pixel,
732 p+=quantum_info->pad;
738 if (range_exception != MagickFalse)
739 (void) ThrowMagickException(exception,GetMagickModule(),
740 CorruptImageError,"InvalidColormapIndex","`%s'",image->filename);
745 switch (quantum_info->depth)
752 for (x=0; x < (ssize_t) number_pixels; x++)
754 p=PushCharPixel(p,&pixel);
755 SetBluePixelComponent(q,ScaleCharToQuantum(pixel));
756 p=PushCharPixel(p,&pixel);
757 SetGreenPixelComponent(q,ScaleCharToQuantum(pixel));
758 p=PushCharPixel(p,&pixel);
759 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
760 SetOpacityPixelComponent(q,OpaqueOpacity);
761 p+=quantum_info->pad;
768 range=GetQuantumRange(image->depth);
769 if (quantum_info->pack == MagickFalse)
771 for (x=0; x < (ssize_t) number_pixels; x++)
773 p=PushLongPixel(endian,p,&pixel);
774 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 22) & 0x3ff,
776 SetGreenPixelComponent(q,ScaleAnyToQuantum((pixel >> 12) &
778 SetBluePixelComponent(q,ScaleAnyToQuantum((pixel >> 2) & 0x3ff,
780 p+=quantum_info->pad;
785 if (quantum_info->quantum == 32U)
787 for (x=0; x < (ssize_t) number_pixels; x++)
789 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
790 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
791 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
792 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
793 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
794 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
799 for (x=0; x < (ssize_t) number_pixels; x++)
801 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
802 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
803 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
804 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
805 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
806 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
813 range=GetQuantumRange(image->depth);
814 if (quantum_info->pack == MagickFalse)
819 for (x=0; x < (ssize_t) (3*number_pixels-1); x+=2)
821 p=PushShortPixel(endian,p,&pixel);
827 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
828 (pixel >> 4),range));
833 SetGreenPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
834 (pixel >> 4),range));
839 SetBluePixelComponent(q,ScaleAnyToQuantum((QuantumAny)
840 (pixel >> 4),range));
845 p=PushShortPixel(endian,p,&pixel);
851 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
852 (pixel >> 4),range));
857 SetGreenPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
858 (pixel >> 4),range));
863 SetBluePixelComponent(q,ScaleAnyToQuantum((QuantumAny)
864 (pixel >> 4),range));
869 p+=quantum_info->pad;
871 for (bit=0; bit < (ssize_t) (3*number_pixels % 2); bit++)
873 p=PushShortPixel(endian,p,&pixel);
879 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
880 (pixel >> 4),range));
885 SetGreenPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
886 (pixel >> 4),range));
891 SetBluePixelComponent(q,ScaleAnyToQuantum((QuantumAny)
892 (pixel >> 4),range));
897 p+=quantum_info->pad;
903 if (quantum_info->quantum == 32U)
905 for (x=0; x < (ssize_t) number_pixels; x++)
907 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
908 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
909 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
910 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
911 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
912 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
917 for (x=0; x < (ssize_t) number_pixels; x++)
919 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
920 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
921 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
922 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
923 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
924 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
934 if (quantum_info->format == FloatingPointQuantumFormat)
936 for (x=0; x < (ssize_t) number_pixels; x++)
938 p=PushShortPixel(endian,p,&pixel);
939 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
940 QuantumRange*HalfToSinglePrecision(pixel)));
941 p=PushShortPixel(endian,p,&pixel);
942 SetGreenPixelComponent(q,ClampToQuantum((MagickRealType)
943 QuantumRange*HalfToSinglePrecision(pixel)));
944 p=PushShortPixel(endian,p,&pixel);
945 SetBluePixelComponent(q,ClampToQuantum((MagickRealType)
946 QuantumRange*HalfToSinglePrecision(pixel)));
947 p+=quantum_info->pad;
952 for (x=0; x < (ssize_t) number_pixels; x++)
954 p=PushShortPixel(endian,p,&pixel);
955 SetBluePixelComponent(q,ScaleShortToQuantum(pixel));
956 p=PushShortPixel(endian,p,&pixel);
957 SetGreenPixelComponent(q,ScaleShortToQuantum(pixel));
958 p=PushShortPixel(endian,p,&pixel);
959 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
960 p+=quantum_info->pad;
970 if (quantum_info->format == FloatingPointQuantumFormat)
975 for (x=0; x < (ssize_t) number_pixels; x++)
977 p=PushFloatPixel(&quantum_state,p,&pixel);
978 SetRedPixelComponent(q,ClampToQuantum(pixel));
979 p=PushFloatPixel(&quantum_state,p,&pixel);
980 SetGreenPixelComponent(q,ClampToQuantum(pixel));
981 p=PushFloatPixel(&quantum_state,p,&pixel);
982 SetBluePixelComponent(q,ClampToQuantum(pixel));
983 p+=quantum_info->pad;
988 for (x=0; x < (ssize_t) number_pixels; x++)
990 p=PushLongPixel(endian,p,&pixel);
991 SetBluePixelComponent(q,ScaleLongToQuantum(pixel));
992 p=PushLongPixel(endian,p,&pixel);
993 SetGreenPixelComponent(q,ScaleLongToQuantum(pixel));
994 p=PushLongPixel(endian,p,&pixel);
995 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
996 p+=quantum_info->pad;
1003 if (quantum_info->format == FloatingPointQuantumFormat)
1008 for (x=0; x < (ssize_t) number_pixels; x++)
1010 p=PushDoublePixel(&quantum_state,p,&pixel);
1011 SetRedPixelComponent(q,ClampToQuantum(pixel));
1012 p=PushDoublePixel(&quantum_state,p,&pixel);
1013 SetGreenPixelComponent(q,ClampToQuantum(pixel));
1014 p=PushDoublePixel(&quantum_state,p,&pixel);
1015 SetBluePixelComponent(q,ClampToQuantum(pixel));
1016 p+=quantum_info->pad;
1024 range=GetQuantumRange(image->depth);
1025 for (x=0; x < (ssize_t) number_pixels; x++)
1027 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1028 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
1029 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1030 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1031 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1032 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1043 switch (quantum_info->depth)
1050 for (x=0; x < (ssize_t) number_pixels; x++)
1052 p=PushCharPixel(p,&pixel);
1053 SetBluePixelComponent(q,ScaleCharToQuantum(pixel));
1054 p=PushCharPixel(p,&pixel);
1055 SetGreenPixelComponent(q,ScaleCharToQuantum(pixel));
1056 p=PushCharPixel(p,&pixel);
1057 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
1058 p=PushCharPixel(p,&pixel);
1059 SetOpacityPixelComponent(q,QuantumRange-ScaleCharToQuantum(pixel));
1060 p+=quantum_info->pad;
1068 if (quantum_info->pack == MagickFalse)
1081 for (x=0; x < (ssize_t) number_pixels; x++)
1083 for (i=0; i < 4; i++)
1089 p=PushLongPixel(endian,p,&pixel);
1090 quantum=(size_t) (ScaleShortToQuantum(
1091 (unsigned short) (((pixel >> 22) & 0x3ff) << 6)));
1096 quantum=(size_t) (ScaleShortToQuantum(
1097 (unsigned short) (((pixel >> 12) & 0x3ff) << 6)));
1102 quantum=(size_t) (ScaleShortToQuantum(
1103 (unsigned short) (((pixel >> 2) & 0x3ff) << 6)));
1109 case 0: SetRedPixelComponent(q,quantum); break;
1110 case 1: SetGreenPixelComponent(q,quantum); break;
1111 case 2: SetBluePixelComponent(q,quantum); break;
1112 case 3: SetOpacityPixelComponent(q,QuantumRange-quantum); break;
1116 p+=quantum_info->pad;
1121 for (x=0; x < (ssize_t) number_pixels; x++)
1123 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1124 SetRedPixelComponent(q,ScaleShortToQuantum((unsigned short)
1126 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1127 SetGreenPixelComponent(q,ScaleShortToQuantum((unsigned short)
1129 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1130 SetBluePixelComponent(q,ScaleShortToQuantum((unsigned short)
1132 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1133 SetOpacityPixelComponent(q,QuantumRange-ScaleShortToQuantum(
1134 (unsigned short) (pixel << 6)));
1144 if (quantum_info->format == FloatingPointQuantumFormat)
1146 for (x=0; x < (ssize_t) number_pixels; x++)
1148 p=PushShortPixel(endian,p,&pixel);
1149 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
1150 QuantumRange*HalfToSinglePrecision(pixel)));
1151 p=PushShortPixel(endian,p,&pixel);
1152 SetGreenPixelComponent(q,ClampToQuantum((MagickRealType)
1153 QuantumRange*HalfToSinglePrecision(pixel)));
1154 p=PushShortPixel(endian,p,&pixel);
1155 SetBluePixelComponent(q,ClampToQuantum((MagickRealType)
1156 QuantumRange*HalfToSinglePrecision(pixel)));
1157 p=PushShortPixel(endian,p,&pixel);
1158 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(
1159 (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)));
1160 p+=quantum_info->pad;
1165 for (x=0; x < (ssize_t) number_pixels; x++)
1167 p=PushShortPixel(endian,p,&pixel);
1168 SetBluePixelComponent(q,ScaleShortToQuantum(pixel));
1169 p=PushShortPixel(endian,p,&pixel);
1170 SetGreenPixelComponent(q,ScaleShortToQuantum(pixel));
1171 p=PushShortPixel(endian,p,&pixel);
1172 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
1173 p=PushShortPixel(endian,p,&pixel);
1174 SetOpacityPixelComponent(q,QuantumRange-ScaleShortToQuantum(pixel));
1175 p+=quantum_info->pad;
1185 if (quantum_info->format == FloatingPointQuantumFormat)
1190 for (x=0; x < (ssize_t) number_pixels; x++)
1192 p=PushFloatPixel(&quantum_state,p,&pixel);
1193 SetRedPixelComponent(q,ClampToQuantum(pixel));
1194 p=PushFloatPixel(&quantum_state,p,&pixel);
1195 SetGreenPixelComponent(q,ClampToQuantum(pixel));
1196 p=PushFloatPixel(&quantum_state,p,&pixel);
1197 SetBluePixelComponent(q,ClampToQuantum(pixel));
1198 p=PushFloatPixel(&quantum_state,p,&pixel);
1199 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
1200 p+=quantum_info->pad;
1205 for (x=0; x < (ssize_t) number_pixels; x++)
1207 p=PushLongPixel(endian,p,&pixel);
1208 SetBluePixelComponent(q,ScaleLongToQuantum(pixel));
1209 p=PushLongPixel(endian,p,&pixel);
1210 SetGreenPixelComponent(q,ScaleLongToQuantum(pixel));
1211 p=PushLongPixel(endian,p,&pixel);
1212 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
1213 p=PushLongPixel(endian,p,&pixel);
1214 SetOpacityPixelComponent(q,QuantumRange-ScaleLongToQuantum(pixel));
1215 p+=quantum_info->pad;
1222 if (quantum_info->format == FloatingPointQuantumFormat)
1227 for (x=0; x < (ssize_t) number_pixels; x++)
1229 p=PushDoublePixel(&quantum_state,p,&pixel);
1230 SetRedPixelComponent(q,ClampToQuantum(pixel));
1231 p=PushDoublePixel(&quantum_state,p,&pixel);
1232 SetGreenPixelComponent(q,ClampToQuantum(pixel));
1233 p=PushDoublePixel(&quantum_state,p,&pixel);
1234 SetBluePixelComponent(q,ClampToQuantum(pixel));
1235 p=PushDoublePixel(&quantum_state,p,&pixel);
1236 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
1237 p+=quantum_info->pad;
1245 range=GetQuantumRange(image->depth);
1246 for (x=0; x < (ssize_t) number_pixels; x++)
1248 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1249 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
1250 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1251 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1252 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1253 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1254 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1255 SetOpacityPixelComponent(q,QuantumRange-ScaleAnyToQuantum(pixel,
1266 switch (quantum_info->depth)
1275 white=(Quantum) QuantumRange;
1276 if (quantum_info->min_is_white != MagickFalse)
1278 black=(Quantum) QuantumRange;
1281 for (x=0; x < ((ssize_t) number_pixels-7); x+=8)
1283 for (bit=0; bit < 8; bit++)
1285 SetRedPixelComponent(q,((*p) & (1 << (7-bit))) == 0 ?
1287 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1288 SetBluePixelComponent(q,GetRedPixelComponent(q));
1293 for (bit=0; bit < (ssize_t) (number_pixels % 8); bit++)
1295 SetRedPixelComponent(q,((*p) & (0x01 << (7-bit))) == 0 ?
1297 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1298 SetBluePixelComponent(q,GetRedPixelComponent(q));
1307 register unsigned char
1310 range=GetQuantumRange(image->depth);
1311 for (x=0; x < ((ssize_t) number_pixels-1); x+=2)
1313 pixel=(unsigned char) ((*p >> 4) & 0xf);
1314 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1315 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1316 SetBluePixelComponent(q,GetRedPixelComponent(q));
1318 pixel=(unsigned char) ((*p) & 0xf);
1319 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1320 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1321 SetBluePixelComponent(q,GetRedPixelComponent(q));
1325 for (bit=0; bit < (ssize_t) (number_pixels % 2); bit++)
1327 pixel=(unsigned char) (*p++ >> 4);
1328 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1329 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1330 SetBluePixelComponent(q,GetRedPixelComponent(q));
1340 if (quantum_info->min_is_white != MagickFalse)
1342 for (x=0; x < (ssize_t) number_pixels; x++)
1344 p=PushCharPixel(p,&pixel);
1345 SetRedPixelComponent(q,QuantumRange-ScaleCharToQuantum(pixel));
1346 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1347 SetBluePixelComponent(q,GetRedPixelComponent(q));
1348 SetOpacityPixelComponent(q,OpaqueOpacity);
1349 p+=quantum_info->pad;
1354 for (x=0; x < (ssize_t) number_pixels; x++)
1356 p=PushCharPixel(p,&pixel);
1357 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
1358 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1359 SetBluePixelComponent(q,GetRedPixelComponent(q));
1360 SetOpacityPixelComponent(q,OpaqueOpacity);
1361 p+=quantum_info->pad;
1368 range=GetQuantumRange(image->depth);
1369 if (quantum_info->pack == MagickFalse)
1371 if (image->endian != LSBEndian)
1373 for (x=0; x < (ssize_t) (number_pixels-2); x+=3)
1375 p=PushLongPixel(endian,p,&pixel);
1376 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 2) &
1378 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1379 SetBluePixelComponent(q,GetRedPixelComponent(q));
1381 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 12) &
1383 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1384 SetBluePixelComponent(q,GetRedPixelComponent(q));
1386 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 22) &
1388 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1389 SetBluePixelComponent(q,GetRedPixelComponent(q));
1390 p+=quantum_info->pad;
1393 p=PushLongPixel(endian,p,&pixel);
1394 if (x++ < (ssize_t) (number_pixels-1))
1396 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 2) &
1398 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1399 SetBluePixelComponent(q,GetRedPixelComponent(q));
1402 if (x++ < (ssize_t) number_pixels)
1404 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 12) &
1406 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1407 SetBluePixelComponent(q,GetRedPixelComponent(q));
1412 for (x=0; x < (ssize_t) (number_pixels-2); x+=3)
1414 p=PushLongPixel(endian,p,&pixel);
1415 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 22) &
1417 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1418 SetBluePixelComponent(q,GetRedPixelComponent(q));
1420 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 12) &
1422 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1423 SetBluePixelComponent(q,GetRedPixelComponent(q));
1425 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 2) &
1427 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1428 SetBluePixelComponent(q,GetRedPixelComponent(q));
1429 p+=quantum_info->pad;
1432 p=PushLongPixel(endian,p,&pixel);
1433 if (x++ < (ssize_t) (number_pixels-1))
1435 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 22) &
1437 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1438 SetBluePixelComponent(q,GetRedPixelComponent(q));
1441 if (x++ < (ssize_t) number_pixels)
1443 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 12) &
1445 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1446 SetBluePixelComponent(q,GetRedPixelComponent(q));
1451 for (x=0; x < (ssize_t) number_pixels; x++)
1453 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1454 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1455 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1456 SetBluePixelComponent(q,GetRedPixelComponent(q));
1457 p+=quantum_info->pad;
1464 range=GetQuantumRange(image->depth);
1465 if (quantum_info->pack == MagickFalse)
1470 for (x=0; x < (ssize_t) (number_pixels-1); x+=2)
1472 p=PushShortPixel(endian,p,&pixel);
1473 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
1474 (pixel >> 4),range));
1475 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1476 SetBluePixelComponent(q,GetRedPixelComponent(q));
1478 p=PushShortPixel(endian,p,&pixel);
1479 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
1480 (pixel >> 4),range));
1481 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1482 SetBluePixelComponent(q,GetRedPixelComponent(q));
1483 p+=quantum_info->pad;
1486 for (bit=0; bit < (ssize_t) (number_pixels % 2); bit++)
1488 p=PushShortPixel(endian,p,&pixel);
1489 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
1490 (pixel >> 4),range));
1491 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1492 SetBluePixelComponent(q,GetRedPixelComponent(q));
1493 p+=quantum_info->pad;
1500 for (x=0; x < (ssize_t) number_pixels; x++)
1502 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1503 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1504 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1505 SetBluePixelComponent(q,GetRedPixelComponent(q));
1506 p+=quantum_info->pad;
1516 if (quantum_info->min_is_white != MagickFalse)
1518 for (x=0; x < (ssize_t) number_pixels; x++)
1520 p=PushShortPixel(endian,p,&pixel);
1521 SetRedPixelComponent(q,QuantumRange-ScaleShortToQuantum(pixel));
1522 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1523 SetBluePixelComponent(q,GetRedPixelComponent(q));
1524 p+=quantum_info->pad;
1529 if (quantum_info->format == FloatingPointQuantumFormat)
1531 for (x=0; x < (ssize_t) number_pixels; x++)
1533 p=PushShortPixel(endian,p,&pixel);
1534 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
1535 QuantumRange*HalfToSinglePrecision(pixel)));
1536 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1537 SetBluePixelComponent(q,GetRedPixelComponent(q));
1538 p+=quantum_info->pad;
1543 for (x=0; x < (ssize_t) number_pixels; x++)
1545 p=PushShortPixel(endian,p,&pixel);
1546 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
1547 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1548 SetBluePixelComponent(q,GetRedPixelComponent(q));
1549 p+=quantum_info->pad;
1559 if (quantum_info->format == FloatingPointQuantumFormat)
1564 for (x=0; x < (ssize_t) number_pixels; x++)
1566 p=PushFloatPixel(&quantum_state,p,&pixel);
1567 SetRedPixelComponent(q,ClampToQuantum(pixel));
1568 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1569 SetBluePixelComponent(q,GetRedPixelComponent(q));
1570 p+=quantum_info->pad;
1575 for (x=0; x < (ssize_t) number_pixels; x++)
1577 p=PushLongPixel(endian,p,&pixel);
1578 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
1579 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1580 SetBluePixelComponent(q,GetRedPixelComponent(q));
1581 p+=quantum_info->pad;
1588 if (quantum_info->format == FloatingPointQuantumFormat)
1593 for (x=0; x < (ssize_t) number_pixels; x++)
1595 p=PushDoublePixel(&quantum_state,p,&pixel);
1596 SetRedPixelComponent(q,ClampToQuantum(pixel));
1597 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1598 SetBluePixelComponent(q,GetRedPixelComponent(q));
1599 p+=quantum_info->pad;
1607 range=GetQuantumRange(image->depth);
1608 for (x=0; x < (ssize_t) number_pixels; x++)
1610 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1611 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1612 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1613 SetBluePixelComponent(q,GetRedPixelComponent(q));
1614 p+=quantum_info->pad;
1622 case GrayAlphaQuantum:
1624 switch (quantum_info->depth)
1628 register unsigned char
1631 for (x=0; x < ((ssize_t) number_pixels-3); x+=4)
1633 for (bit=0; bit < 8; bit+=2)
1635 pixel=(unsigned char)
1636 (((*p) & (1 << (7-bit))) != 0 ? 0x00 : 0x01);
1637 SetRedPixelComponent(q,pixel == 0 ? 0 : QuantumRange);
1638 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1639 SetBluePixelComponent(q,GetRedPixelComponent(q));
1640 SetOpacityPixelComponent(q,((*p) & (1UL << (unsigned char)
1641 (6-bit))) == 0 ? TransparentOpacity : OpaqueOpacity);
1646 for (bit=0; bit <= (ssize_t) (number_pixels % 4); bit+=2)
1648 pixel=(unsigned char) (((*p) & (1 << (7-bit))) != 0 ? 0x00 : 0x01);
1649 SetRedPixelComponent(q,pixel != 0 ? 0 : QuantumRange);
1650 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1651 SetBluePixelComponent(q,GetRedPixelComponent(q));
1652 SetOpacityPixelComponent(q,((*p) & (1UL << (unsigned char)
1653 (6-bit))) == 0 ? TransparentOpacity : OpaqueOpacity);
1662 register unsigned char
1665 range=GetQuantumRange(image->depth);
1666 for (x=0; x < (ssize_t) number_pixels; x++)
1668 pixel=(unsigned char) ((*p >> 4) & 0xf);
1669 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1670 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1671 SetBluePixelComponent(q,GetRedPixelComponent(q));
1672 pixel=(unsigned char) ((*p) & 0xf);
1673 SetOpacityPixelComponent(q,QuantumRange-ScaleAnyToQuantum(pixel,
1685 for (x=0; x < (ssize_t) number_pixels; x++)
1687 p=PushCharPixel(p,&pixel);
1688 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
1689 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1690 SetBluePixelComponent(q,GetRedPixelComponent(q));
1691 p=PushCharPixel(p,&pixel);
1692 SetOpacityPixelComponent(q,QuantumRange-ScaleCharToQuantum(pixel));
1693 p+=quantum_info->pad;
1700 range=GetQuantumRange(image->depth);
1701 for (x=0; x < (ssize_t) number_pixels; x++)
1703 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1704 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1705 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1706 SetBluePixelComponent(q,GetRedPixelComponent(q));
1707 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1708 SetOpacityPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1709 p+=quantum_info->pad;
1716 range=GetQuantumRange(image->depth);
1717 for (x=0; x < (ssize_t) number_pixels; x++)
1719 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1720 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1721 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1722 SetBluePixelComponent(q,GetRedPixelComponent(q));
1723 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1724 SetOpacityPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1725 p+=quantum_info->pad;
1735 if (quantum_info->format == FloatingPointQuantumFormat)
1737 for (x=0; x < (ssize_t) number_pixels; x++)
1739 p=PushShortPixel(endian,p,&pixel);
1740 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
1741 QuantumRange*HalfToSinglePrecision(pixel)));
1742 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1743 SetBluePixelComponent(q,GetRedPixelComponent(q));
1744 p=PushShortPixel(endian,p,&pixel);
1745 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(
1746 (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)));
1747 p+=quantum_info->pad;
1752 for (x=0; x < (ssize_t) number_pixels; x++)
1754 p=PushShortPixel(endian,p,&pixel);
1755 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
1756 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1757 SetBluePixelComponent(q,GetRedPixelComponent(q));
1758 p=PushShortPixel(endian,p,&pixel);
1759 SetOpacityPixelComponent(q,QuantumRange-ScaleShortToQuantum(pixel));
1760 p+=quantum_info->pad;
1770 if (quantum_info->format == FloatingPointQuantumFormat)
1775 for (x=0; x < (ssize_t) number_pixels; x++)
1777 p=PushFloatPixel(&quantum_state,p,&pixel);
1778 SetRedPixelComponent(q,ClampToQuantum(pixel));
1779 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1780 SetBluePixelComponent(q,GetRedPixelComponent(q));
1781 p=PushFloatPixel(&quantum_state,p,&pixel);
1782 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
1783 p+=quantum_info->pad;
1788 for (x=0; x < (ssize_t) number_pixels; x++)
1790 p=PushLongPixel(endian,p,&pixel);
1791 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
1792 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1793 SetBluePixelComponent(q,GetRedPixelComponent(q));
1794 p=PushLongPixel(endian,p,&pixel);
1795 SetOpacityPixelComponent(q,QuantumRange-ScaleLongToQuantum(pixel));
1796 p+=quantum_info->pad;
1803 if (quantum_info->format == FloatingPointQuantumFormat)
1808 for (x=0; x < (ssize_t) number_pixels; x++)
1810 p=PushDoublePixel(&quantum_state,p,&pixel);
1811 SetRedPixelComponent(q,ClampToQuantum(pixel));
1812 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1813 SetBluePixelComponent(q,GetRedPixelComponent(q));
1814 p=PushDoublePixel(&quantum_state,p,&pixel);
1815 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
1816 p+=quantum_info->pad;
1824 range=GetQuantumRange(image->depth);
1825 for (x=0; x < (ssize_t) number_pixels; x++)
1827 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1828 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1829 SetGreenPixelComponent(q,GetRedPixelComponent(q));
1830 SetBluePixelComponent(q,GetRedPixelComponent(q));
1831 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1832 SetOpacityPixelComponent(q,QuantumRange-ScaleAnyToQuantum(pixel,
1834 p+=quantum_info->pad;
1845 switch (quantum_info->depth)
1852 for (x=0; x < (ssize_t) number_pixels; x++)
1854 p=PushCharPixel(p,&pixel);
1855 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
1856 p+=quantum_info->pad;
1866 if (quantum_info->format == FloatingPointQuantumFormat)
1868 for (x=0; x < (ssize_t) number_pixels; x++)
1870 p=PushShortPixel(endian,p,&pixel);
1871 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
1872 QuantumRange*HalfToSinglePrecision(pixel)));
1873 p+=quantum_info->pad;
1878 for (x=0; x < (ssize_t) number_pixels; x++)
1880 p=PushShortPixel(endian,p,&pixel);
1881 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
1882 p+=quantum_info->pad;
1892 if (quantum_info->format == FloatingPointQuantumFormat)
1897 for (x=0; x < (ssize_t) number_pixels; x++)
1899 p=PushFloatPixel(&quantum_state,p,&pixel);
1900 SetRedPixelComponent(q,ClampToQuantum(pixel));
1901 p+=quantum_info->pad;
1906 for (x=0; x < (ssize_t) number_pixels; x++)
1908 p=PushLongPixel(endian,p,&pixel);
1909 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
1910 p+=quantum_info->pad;
1917 if (quantum_info->format == FloatingPointQuantumFormat)
1922 for (x=0; x < (ssize_t) number_pixels; x++)
1924 p=PushDoublePixel(&quantum_state,p,&pixel);
1925 SetRedPixelComponent(q,ClampToQuantum(pixel));
1926 p+=quantum_info->pad;
1934 range=GetQuantumRange(image->depth);
1935 for (x=0; x < (ssize_t) number_pixels; x++)
1937 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
1938 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
1939 p+=quantum_info->pad;
1948 case MagentaQuantum:
1950 switch (quantum_info->depth)
1957 for (x=0; x < (ssize_t) number_pixels; x++)
1959 p=PushCharPixel(p,&pixel);
1960 SetGreenPixelComponent(q,ScaleCharToQuantum(pixel));
1961 p+=quantum_info->pad;
1971 if (quantum_info->format == FloatingPointQuantumFormat)
1973 for (x=0; x < (ssize_t) number_pixels; x++)
1975 p=PushShortPixel(endian,p,&pixel);
1976 SetGreenPixelComponent(q,ClampToQuantum((MagickRealType)
1977 QuantumRange*HalfToSinglePrecision(pixel)));
1978 p+=quantum_info->pad;
1983 for (x=0; x < (ssize_t) number_pixels; x++)
1985 p=PushShortPixel(endian,p,&pixel);
1986 SetGreenPixelComponent(q,ScaleShortToQuantum(pixel));
1987 p+=quantum_info->pad;
1997 if (quantum_info->format == FloatingPointQuantumFormat)
2002 for (x=0; x < (ssize_t) number_pixels; x++)
2004 p=PushFloatPixel(&quantum_state,p,&pixel);
2005 SetGreenPixelComponent(q,ClampToQuantum(pixel));
2006 p+=quantum_info->pad;
2011 for (x=0; x < (ssize_t) number_pixels; x++)
2013 p=PushLongPixel(endian,p,&pixel);
2014 SetGreenPixelComponent(q,ScaleLongToQuantum(pixel));
2015 p+=quantum_info->pad;
2022 if (quantum_info->format == FloatingPointQuantumFormat)
2027 for (x=0; x < (ssize_t) number_pixels; x++)
2029 p=PushDoublePixel(&quantum_state,p,&pixel);
2030 SetGreenPixelComponent(q,ClampToQuantum(pixel));
2031 p+=quantum_info->pad;
2039 range=GetQuantumRange(image->depth);
2040 for (x=0; x < (ssize_t) number_pixels; x++)
2042 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2043 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2044 p+=quantum_info->pad;
2055 switch (quantum_info->depth)
2062 for (x=0; x < (ssize_t) number_pixels; x++)
2064 p=PushCharPixel(p,&pixel);
2065 SetBluePixelComponent(q,ScaleCharToQuantum(pixel));
2066 p+=quantum_info->pad;
2076 if (quantum_info->format == FloatingPointQuantumFormat)
2078 for (x=0; x < (ssize_t) number_pixels; x++)
2080 p=PushShortPixel(endian,p,&pixel);
2081 SetBluePixelComponent(q,ClampToQuantum((MagickRealType)
2082 QuantumRange*HalfToSinglePrecision(pixel)));
2083 p+=quantum_info->pad;
2088 for (x=0; x < (ssize_t) number_pixels; x++)
2090 p=PushShortPixel(endian,p,&pixel);
2091 SetBluePixelComponent(q,ScaleShortToQuantum(pixel));
2092 p+=quantum_info->pad;
2102 if (quantum_info->format == FloatingPointQuantumFormat)
2107 for (x=0; x < (ssize_t) number_pixels; x++)
2109 p=PushFloatPixel(&quantum_state,p,&pixel);
2110 SetBluePixelComponent(q,ClampToQuantum(pixel));
2111 p+=quantum_info->pad;
2116 for (x=0; x < (ssize_t) number_pixels; x++)
2118 p=PushLongPixel(endian,p,&pixel);
2119 SetBluePixelComponent(q,ScaleLongToQuantum(pixel));
2120 p+=quantum_info->pad;
2127 if (quantum_info->format == FloatingPointQuantumFormat)
2132 for (x=0; x < (ssize_t) number_pixels; x++)
2134 p=PushDoublePixel(&quantum_state,p,&pixel);
2135 SetBluePixelComponent(q,ClampToQuantum(pixel));
2136 p+=quantum_info->pad;
2144 range=GetQuantumRange(image->depth);
2145 for (x=0; x < (ssize_t) number_pixels; x++)
2147 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2148 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
2149 p+=quantum_info->pad;
2159 switch (quantum_info->depth)
2166 for (x=0; x < (ssize_t) number_pixels; x++)
2168 p=PushCharPixel(p,&pixel);
2169 SetOpacityPixelComponent(q,QuantumRange-ScaleCharToQuantum(pixel));
2170 p+=quantum_info->pad;
2180 if (quantum_info->format == FloatingPointQuantumFormat)
2182 for (x=0; x < (ssize_t) number_pixels; x++)
2184 p=PushShortPixel(endian,p,&pixel);
2185 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(
2186 (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)));
2187 p+=quantum_info->pad;
2192 for (x=0; x < (ssize_t) number_pixels; x++)
2194 p=PushShortPixel(endian,p,&pixel);
2195 SetOpacityPixelComponent(q,QuantumRange-ScaleShortToQuantum(pixel));
2196 p+=quantum_info->pad;
2206 if (quantum_info->format == FloatingPointQuantumFormat)
2211 for (x=0; x < (ssize_t) number_pixels; x++)
2213 p=PushFloatPixel(&quantum_state,p,&pixel);
2214 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
2215 p+=quantum_info->pad;
2220 for (x=0; x < (ssize_t) number_pixels; x++)
2222 p=PushLongPixel(endian,p,&pixel);
2223 SetOpacityPixelComponent(q,QuantumRange-ScaleLongToQuantum(pixel));
2224 p+=quantum_info->pad;
2231 if (quantum_info->format == FloatingPointQuantumFormat)
2236 for (x=0; x < (ssize_t) number_pixels; x++)
2238 p=PushDoublePixel(&quantum_state,p,&pixel);
2239 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
2240 p+=quantum_info->pad;
2248 range=GetQuantumRange(image->depth);
2249 for (x=0; x < (ssize_t) number_pixels; x++)
2251 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2252 SetOpacityPixelComponent(q,QuantumRange-ScaleAnyToQuantum(pixel,
2254 p+=quantum_info->pad;
2264 if (image->colorspace != CMYKColorspace)
2266 (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
2267 "ColorSeparatedImageRequired","`%s'",image->filename);
2270 switch (quantum_info->depth)
2277 for (x=0; x < (ssize_t) number_pixels; x++)
2279 p=PushCharPixel(p,&pixel);
2280 SetIndexPixelComponent(indexes+x,ScaleCharToQuantum(pixel));
2281 p+=quantum_info->pad;
2290 if (quantum_info->format == FloatingPointQuantumFormat)
2292 for (x=0; x < (ssize_t) number_pixels; x++)
2294 p=PushShortPixel(endian,p,&pixel);
2295 SetIndexPixelComponent(indexes+x,ClampToQuantum((MagickRealType)
2296 QuantumRange*HalfToSinglePrecision(pixel)));
2297 p+=quantum_info->pad;
2301 for (x=0; x < (ssize_t) number_pixels; x++)
2303 p=PushShortPixel(endian,p,&pixel);
2304 SetIndexPixelComponent(indexes+x,ScaleShortToQuantum(pixel));
2305 p+=quantum_info->pad;
2314 if (quantum_info->format == FloatingPointQuantumFormat)
2319 for (x=0; x < (ssize_t) number_pixels; x++)
2321 p=PushFloatPixel(&quantum_state,p,&pixel);
2322 SetIndexPixelComponent(indexes+x,ClampToQuantum(pixel));
2323 p+=quantum_info->pad;
2328 for (x=0; x < (ssize_t) number_pixels; x++)
2330 p=PushLongPixel(endian,p,&pixel);
2331 SetIndexPixelComponent(indexes+x,ScaleLongToQuantum(pixel));
2332 p+=quantum_info->pad;
2339 if (quantum_info->format == FloatingPointQuantumFormat)
2344 for (x=0; x < (ssize_t) number_pixels; x++)
2346 p=PushDoublePixel(&quantum_state,p,&pixel);
2347 SetIndexPixelComponent(indexes+x,ClampToQuantum(pixel));
2348 p+=quantum_info->pad;
2356 range=GetQuantumRange(image->depth);
2357 for (x=0; x < (ssize_t) number_pixels; x++)
2359 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2360 SetIndexPixelComponent(indexes+x,ScaleAnyToQuantum(pixel,range));
2361 p+=quantum_info->pad;
2372 switch (quantum_info->depth)
2379 for (x=0; x < (ssize_t) number_pixels; x++)
2381 p=PushCharPixel(p,&pixel);
2382 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
2383 p=PushCharPixel(p,&pixel);
2384 SetGreenPixelComponent(q,ScaleCharToQuantum(pixel));
2385 p=PushCharPixel(p,&pixel);
2386 SetBluePixelComponent(q,ScaleCharToQuantum(pixel));
2387 SetOpacityPixelComponent(q,OpaqueOpacity);
2388 p+=quantum_info->pad;
2395 range=GetQuantumRange(image->depth);
2396 if (quantum_info->pack == MagickFalse)
2398 for (x=0; x < (ssize_t) number_pixels; x++)
2400 p=PushLongPixel(endian,p,&pixel);
2401 SetRedPixelComponent(q,ScaleAnyToQuantum((pixel >> 22) &
2403 SetGreenPixelComponent(q,ScaleAnyToQuantum((pixel >> 12) &
2405 SetBluePixelComponent(q,ScaleAnyToQuantum((pixel >> 2) &
2407 p+=quantum_info->pad;
2412 if (quantum_info->quantum == 32U)
2414 for (x=0; x < (ssize_t) number_pixels; x++)
2416 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
2417 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2418 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
2419 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2420 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
2421 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
2426 for (x=0; x < (ssize_t) number_pixels; x++)
2428 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2429 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2430 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2431 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2432 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2433 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
2440 range=GetQuantumRange(image->depth);
2441 if (quantum_info->pack == MagickFalse)
2446 for (x=0; x < (ssize_t) (3*number_pixels-1); x+=2)
2448 p=PushShortPixel(endian,p,&pixel);
2454 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2455 (pixel >> 4),range));
2460 SetGreenPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2461 (pixel >> 4),range));
2466 SetBluePixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2467 (pixel >> 4),range));
2472 p=PushShortPixel(endian,p,&pixel);
2478 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2479 (pixel >> 4),range));
2484 SetGreenPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2485 (pixel >> 4),range));
2490 SetBluePixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2491 (pixel >> 4),range));
2496 p+=quantum_info->pad;
2498 for (bit=0; bit < (ssize_t) (3*number_pixels % 2); bit++)
2500 p=PushShortPixel(endian,p,&pixel);
2501 switch ((x+bit) % 3)
2506 SetRedPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2507 (pixel >> 4),range));
2512 SetGreenPixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2513 (pixel >> 4),range));
2518 SetBluePixelComponent(q,ScaleAnyToQuantum((QuantumAny)
2519 (pixel >> 4),range));
2524 p+=quantum_info->pad;
2530 if (quantum_info->quantum == 32U)
2532 for (x=0; x < (ssize_t) number_pixels; x++)
2534 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
2535 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2536 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
2537 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2538 p=PushQuantumLongPixel(&quantum_state,image->depth,p,&pixel);
2539 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
2544 for (x=0; x < (ssize_t) number_pixels; x++)
2546 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2547 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2548 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2549 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2550 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2551 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
2561 if (quantum_info->format == FloatingPointQuantumFormat)
2563 for (x=0; x < (ssize_t) number_pixels; x++)
2565 p=PushShortPixel(endian,p,&pixel);
2566 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
2567 QuantumRange*HalfToSinglePrecision(pixel)));
2568 p=PushShortPixel(endian,p,&pixel);
2569 SetGreenPixelComponent(q,ClampToQuantum((MagickRealType)
2570 QuantumRange*HalfToSinglePrecision(pixel)));
2571 p=PushShortPixel(endian,p,&pixel);
2572 SetBluePixelComponent(q,ClampToQuantum((MagickRealType)
2573 QuantumRange*HalfToSinglePrecision(pixel)));
2574 p+=quantum_info->pad;
2579 for (x=0; x < (ssize_t) number_pixels; x++)
2581 p=PushShortPixel(endian,p,&pixel);
2582 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
2583 p=PushShortPixel(endian,p,&pixel);
2584 SetGreenPixelComponent(q,ScaleShortToQuantum(pixel));
2585 p=PushShortPixel(endian,p,&pixel);
2586 SetBluePixelComponent(q,ScaleShortToQuantum(pixel));
2587 p+=quantum_info->pad;
2597 if (quantum_info->format == FloatingPointQuantumFormat)
2602 for (x=0; x < (ssize_t) number_pixels; x++)
2604 p=PushFloatPixel(&quantum_state,p,&pixel);
2605 SetRedPixelComponent(q,ClampToQuantum(pixel));
2606 p=PushFloatPixel(&quantum_state,p,&pixel);
2607 SetGreenPixelComponent(q,ClampToQuantum(pixel));
2608 p=PushFloatPixel(&quantum_state,p,&pixel);
2609 SetBluePixelComponent(q,ClampToQuantum(pixel));
2610 p+=quantum_info->pad;
2615 for (x=0; x < (ssize_t) number_pixels; x++)
2617 p=PushLongPixel(endian,p,&pixel);
2618 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
2619 p=PushLongPixel(endian,p,&pixel);
2620 SetGreenPixelComponent(q,ScaleLongToQuantum(pixel));
2621 p=PushLongPixel(endian,p,&pixel);
2622 SetBluePixelComponent(q,ScaleLongToQuantum(pixel));
2623 p+=quantum_info->pad;
2630 if (quantum_info->format == FloatingPointQuantumFormat)
2635 for (x=0; x < (ssize_t) number_pixels; x++)
2637 p=PushDoublePixel(&quantum_state,p,&pixel);
2638 SetRedPixelComponent(q,ClampToQuantum(pixel));
2639 p=PushDoublePixel(&quantum_state,p,&pixel);
2640 SetGreenPixelComponent(q,ClampToQuantum(pixel));
2641 p=PushDoublePixel(&quantum_state,p,&pixel);
2642 SetBluePixelComponent(q,ClampToQuantum(pixel));
2643 p+=quantum_info->pad;
2651 range=GetQuantumRange(image->depth);
2652 for (x=0; x < (ssize_t) number_pixels; x++)
2654 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2655 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2656 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2657 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2658 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2659 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
2671 switch (quantum_info->depth)
2678 for (x=0; x < (ssize_t) number_pixels; x++)
2680 p=PushCharPixel(p,&pixel);
2681 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
2682 p=PushCharPixel(p,&pixel);
2683 SetGreenPixelComponent(q,ScaleCharToQuantum(pixel));
2684 p=PushCharPixel(p,&pixel);
2685 SetBluePixelComponent(q,ScaleCharToQuantum(pixel));
2686 p=PushCharPixel(p,&pixel);
2687 SetOpacityPixelComponent(q,QuantumRange-ScaleCharToQuantum(pixel));
2688 p+=quantum_info->pad;
2696 if (quantum_info->pack == MagickFalse)
2709 for (x=0; x < (ssize_t) number_pixels; x++)
2711 for (i=0; i < 4; i++)
2717 p=PushLongPixel(endian,p,&pixel);
2718 quantum=(size_t) (ScaleShortToQuantum((unsigned short)
2719 (((pixel >> 22) & 0x3ff) << 6)));
2724 quantum=(size_t) (ScaleShortToQuantum((unsigned short)
2725 (((pixel >> 12) & 0x3ff) << 6)));
2730 quantum=(size_t) (ScaleShortToQuantum((unsigned short)
2731 (((pixel >> 2) & 0x3ff) << 6)));
2737 case 0: SetRedPixelComponent(q,quantum); break;
2738 case 1: SetGreenPixelComponent(q,quantum); break;
2739 case 2: SetBluePixelComponent(q,quantum); break;
2740 case 3: SetAlphaPixelComponent(q,quantum); break;
2744 p+=quantum_info->pad;
2749 for (x=0; x < (ssize_t) number_pixels; x++)
2751 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2752 SetRedPixelComponent(q,ScaleShortToQuantum((unsigned short)
2754 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2755 SetGreenPixelComponent(q,ScaleShortToQuantum((unsigned short)
2757 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2758 SetBluePixelComponent(q,ScaleShortToQuantum((unsigned short)
2760 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2761 SetOpacityPixelComponent(q,QuantumRange-ScaleShortToQuantum(
2762 (unsigned short) (pixel << 6)));
2772 if (quantum_info->format == FloatingPointQuantumFormat)
2774 for (x=0; x < (ssize_t) number_pixels; x++)
2776 p=PushShortPixel(endian,p,&pixel);
2777 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
2778 QuantumRange*HalfToSinglePrecision(pixel)));
2779 p=PushShortPixel(endian,p,&pixel);
2780 SetGreenPixelComponent(q,ClampToQuantum((MagickRealType)
2781 QuantumRange*HalfToSinglePrecision(pixel)));
2782 p=PushShortPixel(endian,p,&pixel);
2783 SetBluePixelComponent(q,ClampToQuantum((MagickRealType)
2784 QuantumRange*HalfToSinglePrecision(pixel)));
2785 p=PushShortPixel(endian,p,&pixel);
2786 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(
2787 (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)));
2788 p+=quantum_info->pad;
2793 for (x=0; x < (ssize_t) number_pixels; x++)
2795 p=PushShortPixel(endian,p,&pixel);
2796 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
2797 p=PushShortPixel(endian,p,&pixel);
2798 SetGreenPixelComponent(q,ScaleShortToQuantum(pixel));
2799 p=PushShortPixel(endian,p,&pixel);
2800 SetBluePixelComponent(q,ScaleShortToQuantum(pixel));
2801 p=PushShortPixel(endian,p,&pixel);
2802 SetOpacityPixelComponent(q,QuantumRange-ScaleShortToQuantum(pixel));
2803 p+=quantum_info->pad;
2813 if (quantum_info->format == FloatingPointQuantumFormat)
2818 for (x=0; x < (ssize_t) number_pixels; x++)
2820 p=PushFloatPixel(&quantum_state,p,&pixel);
2821 SetRedPixelComponent(q,ClampToQuantum(pixel));
2822 p=PushFloatPixel(&quantum_state,p,&pixel);
2823 SetGreenPixelComponent(q,ClampToQuantum(pixel));
2824 p=PushFloatPixel(&quantum_state,p,&pixel);
2825 SetBluePixelComponent(q,ClampToQuantum(pixel));
2826 p=PushFloatPixel(&quantum_state,p,&pixel);
2827 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
2828 p+=quantum_info->pad;
2833 for (x=0; x < (ssize_t) number_pixels; x++)
2835 p=PushLongPixel(endian,p,&pixel);
2836 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
2837 p=PushLongPixel(endian,p,&pixel);
2838 SetGreenPixelComponent(q,ScaleLongToQuantum(pixel));
2839 p=PushLongPixel(endian,p,&pixel);
2840 SetBluePixelComponent(q,ScaleLongToQuantum(pixel));
2841 p=PushLongPixel(endian,p,&pixel);
2842 SetOpacityPixelComponent(q,QuantumRange-ScaleLongToQuantum(pixel));
2843 p+=quantum_info->pad;
2850 if (quantum_info->format == FloatingPointQuantumFormat)
2855 for (x=0; x < (ssize_t) number_pixels; x++)
2857 p=PushDoublePixel(&quantum_state,p,&pixel);
2858 SetRedPixelComponent(q,ClampToQuantum(pixel));
2859 p=PushDoublePixel(&quantum_state,p,&pixel);
2860 SetGreenPixelComponent(q,ClampToQuantum(pixel));
2861 p=PushDoublePixel(&quantum_state,p,&pixel);
2862 SetBluePixelComponent(q,ClampToQuantum(pixel));
2863 p=PushDoublePixel(&quantum_state,p,&pixel);
2864 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
2865 p+=quantum_info->pad;
2873 range=GetQuantumRange(image->depth);
2874 for (x=0; x < (ssize_t) number_pixels; x++)
2876 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2877 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2878 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2879 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
2880 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2881 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
2882 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
2883 SetOpacityPixelComponent(q,QuantumRange-ScaleAnyToQuantum(pixel,
2894 if (image->colorspace != CMYKColorspace)
2896 (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
2897 "ColorSeparatedImageRequired","`%s'",image->filename);
2900 switch (quantum_info->depth)
2907 for (x=0; x < (ssize_t) number_pixels; x++)
2909 p=PushCharPixel(p,&pixel);
2910 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
2911 p=PushCharPixel(p,&pixel);
2912 SetGreenPixelComponent(q,ScaleCharToQuantum(pixel));
2913 p=PushCharPixel(p,&pixel);
2914 SetBluePixelComponent(q,ScaleCharToQuantum(pixel));
2915 p=PushCharPixel(p,&pixel);
2916 SetIndexPixelComponent(indexes+x,ScaleCharToQuantum(pixel));
2917 p+=quantum_info->pad;
2927 if (quantum_info->format == FloatingPointQuantumFormat)
2929 for (x=0; x < (ssize_t) number_pixels; x++)
2931 p=PushShortPixel(endian,p,&pixel);
2932 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
2933 QuantumRange*HalfToSinglePrecision(pixel)));
2934 p=PushShortPixel(endian,p,&pixel);
2935 SetGreenPixelComponent(q,ClampToQuantum((MagickRealType)
2936 QuantumRange*HalfToSinglePrecision(pixel)));
2937 p=PushShortPixel(endian,p,&pixel);
2938 SetBluePixelComponent(q,ClampToQuantum((MagickRealType)
2939 QuantumRange*HalfToSinglePrecision(pixel)));
2940 p=PushShortPixel(endian,p,&pixel);
2941 SetIndexPixelComponent(indexes+x,ClampToQuantum(
2942 (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)));
2943 p+=quantum_info->pad;
2948 for (x=0; x < (ssize_t) number_pixels; x++)
2950 p=PushShortPixel(endian,p,&pixel);
2951 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
2952 p=PushShortPixel(endian,p,&pixel);
2953 SetGreenPixelComponent(q,ScaleShortToQuantum(pixel));
2954 p=PushShortPixel(endian,p,&pixel);
2955 SetBluePixelComponent(q,ScaleShortToQuantum(pixel));
2956 p=PushShortPixel(endian,p,&pixel);
2957 SetIndexPixelComponent(indexes+x,ScaleShortToQuantum(pixel));
2958 p+=quantum_info->pad;
2968 if (quantum_info->format == FloatingPointQuantumFormat)
2973 for (x=0; x < (ssize_t) number_pixels; x++)
2975 p=PushFloatPixel(&quantum_state,p,&pixel);
2976 SetRedPixelComponent(q,ClampToQuantum(pixel));
2977 p=PushFloatPixel(&quantum_state,p,&pixel);
2978 SetGreenPixelComponent(q,ClampToQuantum(pixel));
2979 p=PushFloatPixel(&quantum_state,p,&pixel);
2980 SetBluePixelComponent(q,ClampToQuantum(pixel));
2981 p=PushFloatPixel(&quantum_state,p,&pixel);
2982 SetIndexPixelComponent(indexes+x,ClampToQuantum(pixel));
2983 p+=quantum_info->pad;
2988 for (x=0; x < (ssize_t) number_pixels; x++)
2990 p=PushLongPixel(endian,p,&pixel);
2991 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
2992 p=PushLongPixel(endian,p,&pixel);
2993 SetGreenPixelComponent(q,ScaleLongToQuantum(pixel));
2994 p=PushLongPixel(endian,p,&pixel);
2995 SetBluePixelComponent(q,ScaleLongToQuantum(pixel));
2996 p=PushLongPixel(endian,p,&pixel);
2997 SetIndexPixelComponent(indexes+x,ScaleLongToQuantum(pixel));
2998 p+=quantum_info->pad;
3005 if (quantum_info->format == FloatingPointQuantumFormat)
3010 for (x=0; x < (ssize_t) number_pixels; x++)
3012 p=PushDoublePixel(&quantum_state,p,&pixel);
3013 SetRedPixelComponent(q,ClampToQuantum(pixel));
3014 p=PushDoublePixel(&quantum_state,p,&pixel);
3015 SetGreenPixelComponent(q,ClampToQuantum(pixel));
3016 p=PushDoublePixel(&quantum_state,p,&pixel);
3017 SetBluePixelComponent(q,ClampToQuantum(pixel));
3018 p=PushDoublePixel(&quantum_state,p,&pixel);
3019 SetIndexPixelComponent(indexes+x,ClampToQuantum(pixel));
3020 p+=quantum_info->pad;
3028 range=GetQuantumRange(image->depth);
3029 for (x=0; x < (ssize_t) number_pixels; x++)
3031 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3032 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
3033 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3034 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
3035 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3036 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
3037 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3038 SetIndexPixelComponent(indexes+x,ScaleAnyToQuantum(pixel,range));
3049 if (image->colorspace != CMYKColorspace)
3051 (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
3052 "ColorSeparatedImageRequired","`%s'",image->filename);
3055 switch (quantum_info->depth)
3062 for (x=0; x < (ssize_t) number_pixels; x++)
3064 p=PushCharPixel(p,&pixel);
3065 SetRedPixelComponent(q,ScaleCharToQuantum(pixel));
3066 p=PushCharPixel(p,&pixel);
3067 SetGreenPixelComponent(q,ScaleCharToQuantum(pixel));
3068 p=PushCharPixel(p,&pixel);
3069 SetBluePixelComponent(q,ScaleCharToQuantum(pixel));
3070 p=PushCharPixel(p,&pixel);
3071 SetIndexPixelComponent(indexes+x,ScaleCharToQuantum(pixel));
3072 p=PushCharPixel(p,&pixel);
3073 SetOpacityPixelComponent(q,QuantumRange-ScaleCharToQuantum(pixel));
3074 p+=quantum_info->pad;
3084 if (quantum_info->format == FloatingPointQuantumFormat)
3086 for (x=0; x < (ssize_t) number_pixels; x++)
3088 p=PushShortPixel(endian,p,&pixel);
3089 SetRedPixelComponent(q,ClampToQuantum((MagickRealType)
3090 QuantumRange*HalfToSinglePrecision(pixel)));
3091 p=PushShortPixel(endian,p,&pixel);
3092 SetGreenPixelComponent(q,ClampToQuantum((MagickRealType)
3093 QuantumRange*HalfToSinglePrecision(pixel)));
3094 p=PushShortPixel(endian,p,&pixel);
3095 SetBluePixelComponent(q,ClampToQuantum((MagickRealType)
3096 QuantumRange*HalfToSinglePrecision(pixel)));
3097 p=PushShortPixel(endian,p,&pixel);
3098 SetIndexPixelComponent(indexes+x,ClampToQuantum(
3099 (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)));
3100 p=PushShortPixel(endian,p,&pixel);
3101 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(
3102 (MagickRealType) QuantumRange*HalfToSinglePrecision(pixel)));
3103 p+=quantum_info->pad;
3108 for (x=0; x < (ssize_t) number_pixels; x++)
3110 p=PushShortPixel(endian,p,&pixel);
3111 SetRedPixelComponent(q,ScaleShortToQuantum(pixel));
3112 p=PushShortPixel(endian,p,&pixel);
3113 SetGreenPixelComponent(q,ScaleShortToQuantum(pixel));
3114 p=PushShortPixel(endian,p,&pixel);
3115 SetBluePixelComponent(q,ScaleShortToQuantum(pixel));
3116 p=PushShortPixel(endian,p,&pixel);
3117 SetIndexPixelComponent(indexes+x,ScaleShortToQuantum(pixel));
3118 p=PushShortPixel(endian,p,&pixel);
3119 SetOpacityPixelComponent(q,QuantumRange-ScaleShortToQuantum(pixel));
3120 p+=quantum_info->pad;
3130 if (quantum_info->format == FloatingPointQuantumFormat)
3135 for (x=0; x < (ssize_t) number_pixels; x++)
3137 p=PushFloatPixel(&quantum_state,p,&pixel);
3138 SetRedPixelComponent(q,ClampToQuantum(pixel));
3139 p=PushFloatPixel(&quantum_state,p,&pixel);
3140 SetGreenPixelComponent(q,ClampToQuantum(pixel));
3141 p=PushFloatPixel(&quantum_state,p,&pixel);
3142 SetBluePixelComponent(q,ClampToQuantum(pixel));
3143 p=PushFloatPixel(&quantum_state,p,&pixel);
3144 SetIndexPixelComponent(indexes+x,ClampToQuantum(pixel));
3145 p=PushFloatPixel(&quantum_state,p,&pixel);
3146 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
3147 p+=quantum_info->pad;
3152 for (x=0; x < (ssize_t) number_pixels; x++)
3154 p=PushLongPixel(endian,p,&pixel);
3155 SetRedPixelComponent(q,ScaleLongToQuantum(pixel));
3156 p=PushLongPixel(endian,p,&pixel);
3157 SetGreenPixelComponent(q,ScaleLongToQuantum(pixel));
3158 p=PushLongPixel(endian,p,&pixel);
3159 SetBluePixelComponent(q,ScaleLongToQuantum(pixel));
3160 p=PushLongPixel(endian,p,&pixel);
3161 SetIndexPixelComponent(indexes+x,ScaleLongToQuantum(pixel));
3162 p=PushLongPixel(endian,p,&pixel);
3163 SetOpacityPixelComponent(q,QuantumRange-ScaleLongToQuantum(pixel));
3164 p+=quantum_info->pad;
3171 if (quantum_info->format == FloatingPointQuantumFormat)
3176 for (x=0; x < (ssize_t) number_pixels; x++)
3178 p=PushDoublePixel(&quantum_state,p,&pixel);
3179 SetRedPixelComponent(q,ClampToQuantum(pixel));
3180 p=PushDoublePixel(&quantum_state,p,&pixel);
3181 SetGreenPixelComponent(q,ClampToQuantum(pixel));
3182 p=PushDoublePixel(&quantum_state,p,&pixel);
3183 SetBluePixelComponent(q,ClampToQuantum(pixel));
3184 p=PushDoublePixel(&quantum_state,p,&pixel);
3185 SetIndexPixelComponent(indexes+x,ClampToQuantum(pixel));
3186 p=PushDoublePixel(&quantum_state,p,&pixel);
3187 SetOpacityPixelComponent(q,QuantumRange-ClampToQuantum(pixel));
3188 p=PushDoublePixel(&quantum_state,p,&pixel);
3189 p+=quantum_info->pad;
3197 range=GetQuantumRange(image->depth);
3198 for (x=0; x < (ssize_t) number_pixels; x++)
3200 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3201 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
3202 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3203 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
3204 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3205 SetBluePixelComponent(q,ScaleAnyToQuantum(pixel,range));
3206 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3207 SetIndexPixelComponent(indexes+x,ScaleAnyToQuantum(pixel,range));
3208 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3209 SetOpacityPixelComponent(q,QuantumRange-ScaleAnyToQuantum(pixel,
3220 switch (quantum_info->depth)
3228 if (quantum_info->pack == MagickFalse)
3241 for (x=0; x < (ssize_t) number_pixels; x+=2)
3243 for (i=0; i < 4; i++)
3249 p=PushLongPixel(endian,p,&pixel);
3250 quantum=(size_t) (ScaleShortToQuantum((unsigned short)
3251 (((pixel >> 22) & 0x3ff) << 6)));
3256 quantum=(size_t) (ScaleShortToQuantum((unsigned short)
3257 (((pixel >> 12) & 0x3ff) << 6)));
3262 quantum=(size_t) (ScaleShortToQuantum((unsigned short)
3263 (((pixel >> 2) & 0x3ff) << 6)));
3267 cbcr[i]=(Quantum) (quantum);
3270 p+=quantum_info->pad;
3271 SetRedPixelComponent(q,cbcr[1]);
3272 SetGreenPixelComponent(q,cbcr[0]);
3273 SetBluePixelComponent(q,cbcr[2]);
3275 SetRedPixelComponent(q,cbcr[3]);
3276 SetGreenPixelComponent(q,cbcr[0]);
3277 SetBluePixelComponent(q,cbcr[2]);
3285 range=GetQuantumRange(image->depth);
3286 for (x=0; x < (ssize_t) number_pixels; x++)
3288 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3289 SetRedPixelComponent(q,ScaleAnyToQuantum(pixel,range));
3290 p=PushQuantumPixel(&quantum_state,image->depth,p,&pixel);
3291 SetGreenPixelComponent(q,ScaleAnyToQuantum(pixel,range));
3302 if ((quantum_type == CbYCrQuantum) || (quantum_type == CbYCrAQuantum))
3307 register PixelPacket
3310 q=GetAuthenticPixelQueue(image);
3311 if (image_view != (CacheView *) NULL)
3312 q=GetCacheViewAuthenticPixelQueue(image_view);
3313 for (x=0; x < (ssize_t) number_pixels; x++)
3315 quantum=GetRedPixelComponent(q);
3316 SetRedPixelComponent(q,GetGreenPixelComponent(q));
3317 SetGreenPixelComponent(q,quantum);
3321 if ((quantum_type == RGBOQuantum) || (quantum_type == CMYKOQuantum))
3323 register PixelPacket
3326 q=GetAuthenticPixelQueue(image);
3327 if (image_view != (CacheView *) NULL)
3328 q=GetCacheViewAuthenticPixelQueue(image_view);
3329 for (x=0; x < (ssize_t) number_pixels; x++)
3331 SetOpacityPixelComponent(q,GetAlphaPixelComponent(q));
3335 if (quantum_info->alpha_type == DisassociatedQuantumAlpha)
3340 register PixelPacket
3346 q=GetAuthenticPixelQueue(image);
3347 if (image_view != (CacheView *) NULL)
3348 q=GetCacheViewAuthenticPixelQueue(image_view);
3349 for (x=0; x < (ssize_t) number_pixels; x++)
3351 alpha=QuantumScale*GetAlphaPixelComponent(q);
3352 alpha=1.0/(fabs(alpha) <= MagickEpsilon ? 1.0 : alpha);
3353 SetRedPixelComponent(q,ClampToQuantum(alpha*
3354 GetRedPixelComponent(q)));
3355 SetGreenPixelComponent(q,ClampToQuantum(alpha*
3356 GetGreenPixelComponent(q)));
3357 SetBluePixelComponent(q,ClampToQuantum(alpha*
3358 GetBluePixelComponent(q)));