@@ -1426,17 +1426,19 @@ def array_to_rgba(
14261426 if opacity <= 1.0 :
14271427 opacity = int (255 * opacity )
14281428 rgba [::, ::, 3 ] = opacity
1429+ elif opacitymap is True : # ndarrays are incompatible with bool().
1430+ oarray = (array * 255 ).round ().astype (np .uint8 )
1431+ rgba [::, ::, 3 ] = oarray
1432+ elif hasattr (opacitymap , '__array__' ): # numpy compatible object
1433+ oarray = normalise_array (opacitymap )
1434+ if flip :
1435+ oarray = np .flipud (np .array (oarray ))
1436+ if oarray .max () <= 1.0 :
1437+ oarray = (oarray * 255 ).round ().astype (np .uint8 )
1438+ rgba [::, ::, 3 ] = oarray
14291439 elif opacitymap :
1430- if isinstance (opacitymap , bool ):
1431- oarray = (array * 255 ).round ().astype (np .uint8 )
1432- rgba [::, ::, 3 ] = oarray
1433- else :
1434- oarray = normalise_array (opacitymap )
1435- if flip :
1436- oarray = np .flipud (np .array (oarray ))
1437- if oarray .max () <= 1.0 :
1438- oarray = (oarray * 255 ).round ().astype (np .uint8 )
1439- rgba [::, ::, 3 ] = oarray
1440+ raise TypeError ('Unknown opacitymap type: Expected bool or ndarray' )
1441+
14401442 return rgba
14411443
14421444
0 commit comments