diff --git a/MagickCore/cache-view.c b/MagickCore/cache-view.c
index baa6ada..c088696 100644
--- a/MagickCore/cache-view.c
+++ b/MagickCore/cache-view.c
@@ -704,7 +704,7 @@
   const int
     id = GetOpenMPThreadId();
 
-  const Quantum
+  register const Quantum
     *p;
 
   register ssize_t
@@ -746,6 +746,62 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   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
+    *p;
+
+  assert(cache_view != (CacheView *) NULL);
+  assert(cache_view->signature == MagickSignature);
+  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);
+  GetPixelInfo(cache_view->image,pixel);
+  if (p == (const Quantum *) NULL)
+    return(MagickFalse);
+  GetPixelInfoPixel(cache_view->image,p,pixel);
+  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                     %
 %                                                                             %
 %                                                                             %