@@ -688,13 +688,34 @@ def _check_unsampled_image(self, renderer):
688
688
def make_image (self , magnification = 1.0 ):
689
689
if self ._A is None :
690
690
raise RuntimeError ('You must first set the image array' )
691
+
692
+ A = self ._A
693
+ if len (A .shape ) == 2 :
694
+ if A .dtype != np .uint8 :
695
+ A = self .to_rgba (A , bytes = True )
696
+ self .is_grayscale = self .cmap .is_gray ()
697
+ else :
698
+ A = np .repeat (A [:,:,np .newaxis ], 4 , 2 )
699
+ A [:,:,3 ] = 255
700
+ self .is_grayscale = True
701
+ else :
702
+ if A .dtype != np .uint8 :
703
+ A = (255 * A ).astype (np .uint8 )
704
+ if A .shape [2 ] == 3 :
705
+ B = zeros (tuple (list (A .shape [0 :2 ]) + [4 ]), np .uint8 )
706
+ B [:,:,0 :3 ] = A
707
+ B [:,:,3 ] = 255
708
+ A = B
709
+ self .is_grayscale = False
710
+
711
+
691
712
x0 , y0 , v_width , v_height = self .axes .viewLim .bounds
692
713
l , b , r , t = self .axes .bbox .extents
693
714
width = (round (r ) + 0.5 ) - (round (l ) - 0.5 )
694
715
height = (round (t ) + 0.5 ) - (round (b ) - 0.5 )
695
716
width *= magnification
696
717
height *= magnification
697
- im = _image .pcolor (self ._Ax , self ._Ay , self . _A ,
718
+ im = _image .pcolor (self ._Ax , self ._Ay , A ,
698
719
height , width ,
699
720
(x0 , x0 + v_width , y0 , y0 + v_height ),
700
721
self ._interpd [self ._interpolation ])
@@ -728,23 +749,6 @@ def set_data(self, x, y, A):
728
749
raise TypeError ("3D arrays must have three (RGB) or four (RGBA) color components" )
729
750
if len (A .shape ) == 3 and A .shape [2 ] == 1 :
730
751
A .shape = A .shape [0 :2 ]
731
- if len (A .shape ) == 2 :
732
- if A .dtype != np .uint8 :
733
- A = self .to_rgba (A , bytes = True )
734
- self .is_grayscale = self .cmap .is_gray ()
735
- else :
736
- A = np .repeat (A [:,:,np .newaxis ], 4 , 2 )
737
- A [:,:,3 ] = 255
738
- self .is_grayscale = True
739
- else :
740
- if A .dtype != np .uint8 :
741
- A = (255 * A ).astype (np .uint8 )
742
- if A .shape [2 ] == 3 :
743
- B = zeros (tuple (list (A .shape [0 :2 ]) + [4 ]), np .uint8 )
744
- B [:,:,0 :3 ] = A
745
- B [:,:,3 ] = 255
746
- A = B
747
- self .is_grayscale = False
748
752
self ._A = A
749
753
self ._Ax = x
750
754
self ._Ay = y
0 commit comments