@@ -572,21 +572,7 @@ def make_image(self, renderer, magnification=1.0, unsampled=False):
572
572
"""
573
573
raise NotImplementedError ('The make_image method must be overridden' )
574
574
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 ):
590
576
"""
591
577
Return whether the image is better to be drawn unsampled.
592
578
@@ -600,22 +586,23 @@ def draw(self, renderer, *args, **kwargs):
600
586
if not self .get_visible ():
601
587
self .stale = False
602
588
return
603
-
604
589
# for empty images, there is nothing to draw!
605
590
if self .get_array ().size == 0 :
606
591
self .stale = False
607
592
return
608
-
609
593
# actually render the image.
610
594
gc = renderer .new_gc ()
611
595
self ._set_gc_clip (gc )
612
596
gc .set_alpha (self ._get_scalar_alpha ())
613
597
gc .set_url (self .get_url ())
614
598
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 )
619
606
else :
620
607
im , l , b , trans = self .make_image (
621
608
renderer , renderer .get_image_magnification ())
@@ -905,10 +892,9 @@ def make_image(self, renderer, magnification=1.0, unsampled=False):
905
892
self .get_clip_box () or self .axes .bbox ,
906
893
magnification , unsampled = unsampled )
907
894
908
- def _check_unsampled_image (self , renderer ):
895
+ def _check_unsampled_image (self ):
909
896
"""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"
912
898
913
899
def set_extent (self , extent ):
914
900
"""
@@ -1000,7 +986,7 @@ def __init__(self, ax, *, interpolation='nearest', **kwargs):
1000
986
super ().__init__ (ax , ** kwargs )
1001
987
self .set_interpolation (interpolation )
1002
988
1003
- def _check_unsampled_image (self , renderer ):
989
+ def _check_unsampled_image (self ):
1004
990
"""Return False. Do not use unsampled image."""
1005
991
return False
1006
992
@@ -1192,7 +1178,7 @@ def make_image(self, renderer, magnification=1.0, unsampled=False):
1192
1178
bg )
1193
1179
return im , l , b , IdentityTransform ()
1194
1180
1195
- def _check_unsampled_image (self , renderer ):
1181
+ def _check_unsampled_image (self ):
1196
1182
return False
1197
1183
1198
1184
def set_data (self , x , y , A ):
0 commit comments