/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % G e t O n e C a c h e V i e w V i r t u a l P i x e l % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetOneCacheViewVirtualMethodPixel() returns a single virtual pixel at % the specified (x,y) location. The image background color is returned if an % error occurs. If you plan to modify the pixel, use % GetOneCacheViewAuthenticPixel() instead. % % The format of the GetOneCacheViewVirtualPixel method is: % % MagickBooleanType GetOneCacheViewVirtualMethodPixel( % const CacheView *cache_view, % const VirtualPixelMethod virtual_pixel_method,const ssize_t x, % const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception) % % A description of each parameter follows: % % o cache_view: the cache view. % % o virtual_pixel_method: the virtual pixel method. % % o x,y: These values define the offset of the pixel. % % o pixel: return a pixel at the specified (x,y) location. % % o exception: return any errors or warnings in this structure. % */ MagickExport MagickBooleanType GetOneCacheViewVirtualMethodPixel( const CacheView *cache_view,const VirtualPixelMethod virtual_pixel_method, const ssize_t x,const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception) { const PixelPacket *pixels; ssize_t id; assert(cache_view != (CacheView *) NULL); assert(cache_view->signature == MagickSignature); if (cache_view->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", cache_view->image->filename); *pixel=cache_view->image->background_color; id=GetOpenMPThreadId(); assert(id < (ssize_t) cache_view->number_threads); pixels=GetVirtualPixelsFromNexus(cache_view->image,virtual_pixel_method,x,y,1, 1,cache_view->nexus_info[id],exception); if (pixels == (const PixelPacket *) NULL) return(MagickFalse); *pixel=(*pixels); return(MagickTrue); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % G e t C a c h e V i e w V i r t u a l P i x e l s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetCacheViewVirtualPixels() gets virtual pixels from the in-memory or % disk pixel cache as defined by the geometry parameters. A pointer to the % pixels is returned if the pixels are transferred, otherwise a NULL is % returned. % % The format of the GetCacheViewVirtualPixels method is: % % const PixelPacket *GetCacheViewVirtualPixels( % const CacheView *cache_view,const ssize_t x,const ssize_t y, % const size_t columns,const size_t rows,ExceptionInfo *exception) % % A description of each parameter follows: % % o cache_view: the cache view. % % o x,y,columns,rows: These values define the perimeter of a region of % pixels. % % o exception: return any errors or warnings in this structure. % */ MagickExport const PixelPacket *GetCacheViewVirtualPixels( const CacheView *cache_view,const ssize_t x,const ssize_t y, const size_t columns,const size_t rows,ExceptionInfo *exception) { const int id = GetOpenMPThreadId(); assert(cache_view != (CacheView *) NULL); assert(cache_view->signature == MagickSignature); assert(id < (int) cache_view->number_threads); return(GetVirtualPixelsFromNexus(cache_view->image, cache_view->virtual_pixel_method,x,y,columns,rows, cache_view->nexus_info[id],exception)); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % G e t O n e C a c h e V i e w V i r t u a l P i x e l % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetOneCacheViewVirtualPixel() returns a single pixel at the specified (x,y) % location. The image background color is returned if an error occurs. If % you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead. % % The format of the GetOneCacheViewVirtualPixel method is: % % MagickBooleanType GetOneCacheViewVirtualPixel( % const CacheView *cache_view,const ssize_t x,const ssize_t y, % Quantum *pixel,ExceptionInfo *exception) % % A description of each parameter follows: % % o cache_view: the cache view. % % o x,y: These values define the offset of the pixel. % % o pixel: return a pixel at the specified (x,y) location. % % o exception: return any errors or warnings in this structure. % */ MagickExport MagickBooleanType GetOneCacheViewVirtualPixel( const CacheView *cache_view,const ssize_t x,const ssize_t y,Quantum *pixel, ExceptionInfo *exception) { const int id = GetOpenMPThreadId(); register const Quantum *magick_restrict p; register ssize_t i; assert(cache_view != (CacheView *) NULL); assert(cache_view->signature == MagickCoreSignature); assert(id < (int) cache_view->number_threads); (void) memset(pixel,0,MaxPixelChannels*sizeof(*pixel)); p=GetVirtualPixelsFromNexus(cache_view->image, cache_view->virtual_pixel_method,x,y,1,1,cache_view->nexus_info[id], exception); if (p == (const Quantum *) NULL) { PixelInfo background_color; background_color=cache_view->image->background_color; pixel[RedPixelChannel]=ClampToQuantum(background_color.red); pixel[GreenPixelChannel]=ClampToQuantum(background_color.green); pixel[BluePixelChannel]=ClampToQuantum(background_color.blue); pixel[BlackPixelChannel]=ClampToQuantum(background_color.black); pixel[AlphaPixelChannel]=ClampToQuantum(background_color.alpha); return(MagickFalse); } for (i=0; i < (ssize_t) GetPixelChannels(cache_view->image); i++) { PixelChannel channel=GetPixelChannelChannel(cache_view->image,i); pixel[channel]=p[i]; } return(MagickTrue); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % G e t O n e C a c h e V i e w V i r t u a l P i x e l % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetOneCacheViewVirtualPixel() returns a single pixel at the specified (x,y) % location. The image background color is returned if an error occurs. If % you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead. % % The format of the GetOneCacheViewVirtualPixel method is: % % MagickBooleanType GetOneCacheViewVirtualPixel( % const CacheView *cache_view,const ssize_t x,const ssize_t y, % PixelPacket *pixel,ExceptionInfo *exception) % % A description of each parameter follows: % % o cache_view: the cache view. % % o x,y: These values define the offset of the pixel. % % o pixel: return a pixel at the specified (x,y) location. % % o exception: return any errors or warnings in this structure. % */ MagickExport MagickBooleanType GetOneCacheViewVirtualPixel( const CacheView *cache_view,const ssize_t x,const ssize_t y, PixelPacket *pixel,ExceptionInfo *exception) { const int id = GetOpenMPThreadId(); const PixelPacket *pixels; assert(cache_view != (CacheView *) NULL); assert(cache_view->signature == MagickSignature); *pixel=cache_view->image->background_color; assert(id < (int) cache_view->number_threads); pixels=GetVirtualPixelsFromNexus(cache_view->image, cache_view->virtual_pixel_method,x,y,1,1,cache_view->nexus_info[id], exception); if (pixels == (const PixelPacket *) NULL) return(MagickFalse); *pixel=(*pixels); return(MagickTrue); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % G e t O n e C a c h e V i e w V i r t u a l P i x e l I n f o % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetOneCacheViewVirtualPixelInfo() returns a single pixel at the specified % (x,y) location. The image background color is returned if an error occurs. % If you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead. % % The format of the GetOneCacheViewVirtualPixelInfo method is: % % MagickBooleanType GetOneCacheViewVirtualPixelInfo( % const CacheView *cache_view,const ssize_t x,const ssize_t y, % PixelInfo *pixel,ExceptionInfo *exception) % % A description of each parameter follows: % % o cache_view: the cache view. % % o x,y: These values define the offset of the pixel. % % o pixel: return a pixel at the specified (x,y) location. % % o exception: return any errors or warnings in this structure. % */ MagickExport MagickBooleanType GetOneCacheViewVirtualPixelInfo( const CacheView *cache_view,const ssize_t x,const ssize_t y,PixelInfo *pixel, ExceptionInfo *exception) { const int id = GetOpenMPThreadId(); register const Quantum *magick_restrict p; assert(cache_view != (CacheView *) NULL); assert(cache_view->signature == MagickCoreSignature); assert(id < (int) cache_view->number_threads); GetPixelInfo(cache_view->image,pixel); p=GetVirtualPixelsFromNexus(cache_view->image, cache_view->virtual_pixel_method,x,y,1,1,cache_view->nexus_info[id], exception); if (p == (const Quantum *) NULL) return(MagickFalse); GetPixelInfoPixel(cache_view->image,p,pixel); return(MagickTrue); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % G e t C a c h e V i e w V i r t u a l P i x e l s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetCacheViewVirtualPixels() gets virtual pixels from the in-memory or % disk pixel cache as defined by the geometry parameters. A pointer to the % pixels is returned if the pixels are transferred, otherwise a NULL is % returned. % % The format of the GetCacheViewVirtualPixels method is: % % const PixelPacket *GetCacheViewVirtualPixels( % const CacheView *cache_view,const ssize_t x,const ssize_t y, % const size_t columns,const size_t rows, % ExceptionInfo *exception) % % A description of each parameter follows: % % o cache_view: the cache view. % % o x,y,columns,rows: These values define the perimeter of a region of % pixels. % % o exception: return any errors or warnings in this structure. % */ MagickExport const PixelPacket *GetCacheViewVirtualPixels( const CacheView *cache_view,const ssize_t x,const ssize_t y, const size_t columns,const size_t rows,ExceptionInfo *exception) { const PixelPacket *pixels; ssize_t id; assert(cache_view != (CacheView *) NULL); assert(cache_view->signature == MagickSignature); if (cache_view->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", cache_view->image->filename); id=GetOpenMPThreadId(); assert(id < (ssize_t) cache_view->number_threads); pixels=GetVirtualPixelsFromNexus(cache_view->image, cache_view->virtual_pixel_method,x,y,columns,rows, cache_view->nexus_info[id],exception); return(pixels); }