diff --git a/mujoco_py/mjviewer.py b/mujoco_py/mjviewer.py
index 4c26c0d3be59b8e0e4f481b99ef7ffae42e978d1..66ac942fea2fb986b77c69dca0b53a3fc6be501f 100644
--- a/mujoco_py/mjviewer.py
+++ b/mujoco_py/mjviewer.py
@@ -205,10 +205,10 @@ class MjViewer(MjViewerBasic):
         self._markers[:] = []
         self._overlay.clear()
 
-    def _read_pixels_as_in_window(self):
+    def _read_pixels_as_in_window(self, resolution=None):
         # Reads pixels with markers and overlay from the same camera as screen.
-        resolution = glfw.get_framebuffer_size(
-            self.sim._render_context_window.window)
+        if resolution is None:
+            resolution = glfw.get_framebuffer_size(self.sim._render_context_window.window)
 
         resolution = np.array(resolution)
         resolution = resolution * min(1000 / np.min(resolution), 1)