@@ -572,21 +572,7 @@ def make_image(self, renderer, magnification=1.0, unsampled=False):
572572        """ 
573573        raise  NotImplementedError ('The make_image method must be overridden' )
574574
575-     def  _draw_unsampled_image (self , renderer , gc ):
576-         """ 
577-         Draw unsampled image. The renderer should support a draw_image method 
578-         with scale parameter. 
579-         """ 
580-         im , l , b , trans  =  self .make_image (renderer , unsampled = True )
581- 
582-         if  im  is  None :
583-             return 
584- 
585-         trans  =  Affine2D ().scale (im .shape [1 ], im .shape [0 ]) +  trans 
586- 
587-         renderer .draw_image (gc , l , b , im , trans )
588- 
589-     def  _check_unsampled_image (self , renderer ):
575+     def  _check_unsampled_image (self ):
590576        """ 
591577        Return whether the image is better to be drawn unsampled. 
592578
@@ -600,22 +586,23 @@ def draw(self, renderer, *args, **kwargs):
600586        if  not  self .get_visible ():
601587            self .stale  =  False 
602588            return 
603- 
604589        # for empty images, there is nothing to draw! 
605590        if  self .get_array ().size  ==  0 :
606591            self .stale  =  False 
607592            return 
608- 
609593        # actually render the image. 
610594        gc  =  renderer .new_gc ()
611595        self ._set_gc_clip (gc )
612596        gc .set_alpha (self ._get_scalar_alpha ())
613597        gc .set_url (self .get_url ())
614598        gc .set_gid (self .get_gid ())
615- 
616-         if  (self ._check_unsampled_image (renderer ) and 
617-                 self .get_transform ().is_affine ):
618-             self ._draw_unsampled_image (renderer , gc )
599+         if  (renderer .option_scale_image ()  # Renderer supports transform kwarg. 
600+                 and  self ._check_unsampled_image ()
601+                 and  self .get_transform ().is_affine ):
602+             im , l , b , trans  =  self .make_image (renderer , unsampled = True )
603+             if  im  is  not None :
604+                 trans  =  Affine2D ().scale (im .shape [1 ], im .shape [0 ]) +  trans 
605+                 renderer .draw_image (gc , l , b , im , trans )
619606        else :
620607            im , l , b , trans  =  self .make_image (
621608                renderer , renderer .get_image_magnification ())
@@ -905,10 +892,9 @@ def make_image(self, renderer, magnification=1.0, unsampled=False):
905892            self .get_clip_box () or  self .axes .bbox ,
906893            magnification , unsampled = unsampled )
907894
908-     def  _check_unsampled_image (self ,  renderer ):
895+     def  _check_unsampled_image (self ):
909896        """Return whether the image would be better drawn unsampled.""" 
910-         return  (self .get_interpolation () ==  "none" 
911-                 and  renderer .option_scale_image ())
897+         return  self .get_interpolation () ==  "none" 
912898
913899    def  set_extent (self , extent ):
914900        """ 
@@ -1000,7 +986,7 @@ def __init__(self, ax, *, interpolation='nearest', **kwargs):
1000986        super ().__init__ (ax , ** kwargs )
1001987        self .set_interpolation (interpolation )
1002988
1003-     def  _check_unsampled_image (self ,  renderer ):
989+     def  _check_unsampled_image (self ):
1004990        """Return False. Do not use unsampled image.""" 
1005991        return  False 
1006992
@@ -1192,7 +1178,7 @@ def make_image(self, renderer, magnification=1.0, unsampled=False):
11921178                            bg )
11931179        return  im , l , b , IdentityTransform ()
11941180
1195-     def  _check_unsampled_image (self ,  renderer ):
1181+     def  _check_unsampled_image (self ):
11961182        return  False 
11971183
11981184    def  set_data (self , x , y , A ):
0 commit comments