@@ -387,6 +387,16 @@ def option_scale_image(self):
387387 """
388388 return True
389389
390+ def _get_image_h_w_bits_command (self , im ):
391+ if im .is_grayscale :
392+ h , w , bits = self ._gray (im )
393+ imagecmd = "image"
394+ else :
395+ h , w , bits = self ._rgb (im )
396+ imagecmd = "false 3 colorimage"
397+
398+ return h , w , bits , imagecmd
399+
390400 def draw_image (self , gc , x , y , im , dx = None , dy = None , transform = None ):
391401 """
392402 Draw the Image instance into the current axes; x is the
@@ -400,12 +410,7 @@ def draw_image(self, gc, x, y, im, dx=None, dy=None, transform=None):
400410
401411 im .flipud_out ()
402412
403- if im .is_grayscale :
404- h , w , bits = self ._gray (im )
405- imagecmd = "image"
406- else :
407- h , w , bits = self ._rgb (im )
408- imagecmd = "false 3 colorimage"
413+ h , w , bits , imagecmd = self ._get_image_h_w_bits_command (im )
409414 hexlines = '\n ' .join (self ._hex_lines (bits ))
410415
411416 if dx is None :
@@ -924,6 +929,8 @@ def new_figure_manager(num, *args, **kwargs):
924929 return manager
925930
926931class FigureCanvasPS (FigureCanvasBase ):
932+ _renderer_class = RendererPS
933+
927934 def draw (self ):
928935 pass
929936
@@ -1057,7 +1064,8 @@ def write(self, *kl, **kwargs):
10571064
10581065 # mixed mode rendering
10591066 _bbox_inches_restore = kwargs .pop ("bbox_inches_restore" , None )
1060- ps_renderer = RendererPS (width , height , self ._pswriter , imagedpi = dpi )
1067+ ps_renderer = self ._renderer_class (width , height , self ._pswriter ,
1068+ imagedpi = dpi )
10611069 renderer = MixedModeRenderer (self .figure ,
10621070 width , height , dpi , ps_renderer ,
10631071 bbox_inches_restore = _bbox_inches_restore )
@@ -1189,7 +1197,8 @@ def write(self, *kl, **kwargs):
11891197
11901198 # mixed mode rendering
11911199 _bbox_inches_restore = kwargs .pop ("bbox_inches_restore" , None )
1192- ps_renderer = RendererPS (width , height , self ._pswriter , imagedpi = dpi )
1200+ ps_renderer = self ._renderer_class (width , height ,
1201+ self ._pswriter , imagedpi = dpi )
11931202 renderer = MixedModeRenderer (self .figure ,
11941203 width , height , dpi , ps_renderer ,
11951204 bbox_inches_restore = _bbox_inches_restore )
0 commit comments