/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % G e t O n e C a c h e V i e w A u t h e n t i c P i x e l % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetOneCacheViewAuthenticPixel() returns a single pixel at the specified (x,y) % location. The image background color is returned if an error occurs. % % The format of the GetOneCacheViewAuthenticPixel method is: % % MagickBooleaNType GetOneCacheViewAuthenticPixel( % 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 GetOneCacheViewAuthenticPixel( const CacheView *cache_view,const ssize_t x,const ssize_t y,PixelPacket *pixel, ExceptionInfo *exception) { Cache cache; ssize_t id; PixelPacket *pixels; assert(cache_view != (CacheView *) NULL); assert(cache_view->signature == MagickSignature); if (cache_view->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", cache_view->image->filename); cache=GetImagePixelCache(cache_view->image,MagickTrue,exception); if (cache == (Cache) NULL) return(MagickFalse); *pixel=cache_view->image->background_color; id=GetOpenMPThreadId(); assert(id < (ssize_t) cache_view->number_threads); pixels=GetAuthenticPixelCacheNexus(cache_view->image,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 A u t h e n t i c P i x e l s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetCacheViewAuthenticPixels() gets 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 GetCacheViewAuthenticPixels method is: % % PixelPacket *GetCacheViewAuthenticPixels(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. % */ MagickExport PixelPacket *GetCacheViewAuthenticPixels(CacheView *cache_view, const ssize_t x,const ssize_t y,const size_t columns, const size_t rows,ExceptionInfo *exception) { Cache cache; ssize_t id; PixelPacket *pixels; assert(cache_view != (CacheView *) NULL); assert(cache_view->signature == MagickSignature); if (cache_view->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", cache_view->image->filename); cache=GetImagePixelCache(cache_view->image,MagickTrue,exception); if (cache == (Cache) NULL) return((PixelPacket *) NULL); id=GetOpenMPThreadId(); assert(id < (ssize_t) cache_view->number_threads); pixels=GetAuthenticPixelCacheNexus(cache_view->image,x,y,columns,rows, cache_view->nexus_info[id],exception); return(pixels); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % G e t C a c h e V i e w A u t h e n t i c P i x e l s % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetCacheViewAuthenticPixels() gets 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 GetCacheViewAuthenticPixels method is: % % PixelPacket *GetCacheViewAuthenticPixels(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. % */ MagickExport PixelPacket *GetCacheViewAuthenticPixels(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(GetAuthenticPixelCacheNexus(cache_view->image,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 A u t h e n t i c P i x e l % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetOneCacheViewAuthenticPixel() returns a single pixel at the specified (x,y) % location. The image background color is returned if an error occurs. % % The format of the GetOneCacheViewAuthenticPixel method is: % % MagickBooleaNType GetOneCacheViewAuthenticPixel( % 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 GetOneCacheViewAuthenticPixel( const CacheView *cache_view,const ssize_t x,const ssize_t y, PixelPacket *pixel,ExceptionInfo *exception) { const int id = GetOpenMPThreadId(); 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=GetAuthenticPixelCacheNexus(cache_view->image,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 A u t h e n t i c P i x e l % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % GetOneCacheViewAuthenticPixel() returns a single pixel at the specified (x,y) % location. The image background color is returned if an error occurs. % % The format of the GetOneCacheViewAuthenticPixel method is: % % MagickBooleaNType GetOneCacheViewAuthenticPixel( % 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 GetOneCacheViewAuthenticPixel( const CacheView *cache_view,const ssize_t x,const ssize_t y,Quantum *pixel, ExceptionInfo *exception) { const int id = GetOpenMPThreadId(); Quantum *magick_restrict q; 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)); q=GetAuthenticPixelCacheNexus(cache_view->image,x,y,1,1, cache_view->nexus_info[id],exception); if (q == (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]=q[i]; } return(MagickTrue); }
*/ MagickExport MagickBooleanType GetOneCacheViewAuthenticPixel( const CacheView *restrict cache_view,const ssize_t x,const ssize_t y, PixelPacket *restrict pixel,ExceptionInfo *exception) { const int id = GetOpenMPThreadId(); PixelPacket *restrict 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=GetAuthenticPixelCacheNexus(cache_view->image,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 A u t h e n t i c I n d e x Q u e u e % % % % % % %