Home | History | Annotate | Download | only in coders

Lines Matching refs:Image

13 %                   Read/Write MTV Raytracer Image Format                     %
51 #include "MagickCore/image.h"
52 #include "MagickCore/image-private.h"
69 WriteMTVImage(const ImageInfo *,Image *,ExceptionInfo *);
83 % ReadMTVImage() reads a MTV image file and returns it. It allocates
84 % the memory necessary for the new Image structure and returns a pointer to
85 % the new image.
89 % Image *ReadMTVImage(const ImageInfo *image_info,ExceptionInfo *exception)
93 % o image_info: the image info.
98 static Image *ReadMTVImage(const ImageInfo *image_info,ExceptionInfo *exception)
103 Image
104 *image;
130 Open image file.
139 image=AcquireImage(image_info,exception);
140 status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
143 image=DestroyImageList(image);
144 return((Image *) NULL);
147 Read MTV image.
149 (void) ReadBlobString(image,buffer);
156 Initialize image structure.
158 image->columns=columns;
159 image->rows=rows;
160 image->depth=8;
162 if (image->scene >= (image_info->scene+image_info->number_scenes-1))
164 status=SetImageExtent(image,image->columns,image->rows,exception);
166 return(DestroyImageList(image));
168 Convert MTV raster image to pixel packets.
170 pixels=(unsigned char *) AcquireQuantumMemory(image->columns,
174 for (y=0; y < (ssize_t) image->rows; y++)
176 count=(ssize_t) ReadBlob(image,(size_t) (3*image->columns),pixels);
177 if (count != (ssize_t) (3*image->columns))
180 q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
183 for (x=0; x < (ssize_t) image->columns; x++)
185 SetPixelRed(image,ScaleCharToQuantum(*p++),q);
186 SetPixelGreen(image,ScaleCharToQuantum(*p++),q);
187 SetPixelBlue(image,ScaleCharToQuantum(*p++),q);
188 SetPixelAlpha(image,OpaqueAlpha,q);
189 q+=GetPixelChannels(image);
191 if (SyncAuthenticPixels(image,exception) == MagickFalse)
193 if (image->previous == (Image *) NULL)
195 status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
196 image->rows);
202 if (EOFBlob(image) != MagickFalse)
205 image->filename);
209 Proceed to next image.
212 if (image->scene >= (image_info->scene+image_info->number_scenes-1))
215 (void) ReadBlobString(image,buffer);
220 Allocate next image structure.
222 AcquireNextImage(image_info,image,exception);
223 if (GetNextImageInList(image) == (Image *) NULL)
225 image=DestroyImageList(image);
226 return((Image *) NULL);
228 image=SyncNextImageInList(image);
229 status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
230 GetBlobSize(image));
235 (void) CloseBlob(image);
236 return(GetFirstImageInList(image));
251 % RegisterMTVImage() adds attributes for the MTV image format to
252 % the list of supported formats. The attributes include the image format
268 entry=AcquireMagickInfo("MTV","MTV","MTV Raytracing image format");
312 % WriteMTVImage() writes an image to a file in red, green, and blue MTV
318 % Image *image,ExceptionInfo *exception)
322 % o image_info: the image info.
324 % o image: The image.
329 static MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image,
357 Open output image file.
361 assert(image != (Image *) NULL);
362 assert(image->signature == MagickCoreSignature);
363 if (image->debug != MagickFalse)
364 (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
367 status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
376 (void) TransformImageColorspace(image,sRGBColorspace,exception);
377 pixels=(unsigned char *) AcquireQuantumMemory(image->columns,
385 image->columns,(double) image->rows);
386 (void) WriteBlobString(image,buffer);
387 for (y=0; y < (ssize_t) image->rows; y++)
389 p=GetVirtualPixels(image,0,y,image->columns,1,exception);
393 for (x=0; x < (ssize_t) image->columns; x++)
395 *q++=ScaleQuantumToChar(GetPixelRed(image,p));
396 *q++=ScaleQuantumToChar(GetPixelGreen(image,p));
397 *q++=ScaleQuantumToChar(GetPixelBlue(image,p));
398 p+=GetPixelChannels(image);
400 (void) WriteBlob(image,(size_t) (q-pixels),pixels);
401 if (image->previous == (Image *) NULL)
403 status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
404 image->rows);
410 if (GetNextImageInList(image) == (Image *) NULL)
412 image=SyncNextImageInList(image);
413 status=SetImageProgress(image,SaveImagesTag,scene,
414 GetImageListLength(image));
419 (void) CloseBlob(image);