@@ -2323,15 +2323,6 @@ def draw(self, renderer=None, inframe=False):
2323
2323
artists .remove (self ._left_title )
2324
2324
artists .remove (self ._right_title )
2325
2325
2326
- # add images to dsu if the backend supports compositing.
2327
- # otherwise, does the manual compositing without adding images to dsu.
2328
- if len (self .images ) <= 1 or renderer .option_image_nocomposite ():
2329
- _do_composite = False
2330
- else :
2331
- _do_composite = True
2332
- for im in self .images :
2333
- artists .remove (im )
2334
-
2335
2326
if self .figure .canvas .is_saving ():
2336
2327
dsu = [(a .zorder , a ) for a in artists ]
2337
2328
else :
@@ -2356,46 +2347,12 @@ def draw(self, renderer=None, inframe=False):
2356
2347
if self .axison and self ._frameon :
2357
2348
self .patch .draw (renderer )
2358
2349
2359
- if _do_composite :
2360
- # make a composite image, blending alpha
2361
- # list of (mimage.Image, ox, oy)
2362
-
2363
- zorder_images = [(im .zorder , im ) for im in self .images
2364
- if im .get_visible ()]
2365
- zorder_images .sort (key = lambda x : x [0 ])
2366
-
2367
- mag = renderer .get_image_magnification ()
2368
- ims = [(im .make_image (mag ), 0 , 0 , im .get_alpha ())
2369
- for z , im in zorder_images ]
2370
-
2371
- l , b , r , t = self .bbox .extents
2372
- width = int (mag * ((np .round (r ) + 0.5 ) - (np .round (l ) - 0.5 )))
2373
- height = int (mag * ((np .round (t ) + 0.5 ) - (np .round (b ) - 0.5 )))
2374
- im = mimage .from_images (height ,
2375
- width ,
2376
- ims )
2377
-
2378
- im .is_grayscale = False
2379
- l , b , w , h = self .bbox .bounds
2380
- # composite images need special args so they will not
2381
- # respect z-order for now
2382
-
2383
- gc = renderer .new_gc ()
2384
- gc .set_clip_rectangle (self .bbox )
2385
- gc .set_clip_path (mtransforms .TransformedPath (
2386
- self .patch .get_path (),
2387
- self .patch .get_transform ()))
2388
-
2389
- renderer .draw_image (gc , round (l ), round (b ), im )
2390
- gc .restore ()
2391
-
2392
2350
if dsu_rasterized :
2393
2351
for zorder , a in dsu_rasterized :
2394
2352
a .draw (renderer )
2395
2353
renderer .stop_rasterizing ()
2396
2354
2397
- for zorder , a in dsu :
2398
- a .draw (renderer )
2355
+ mimage ._draw_list_compositing_images (renderer , self , dsu )
2399
2356
2400
2357
renderer .close_group ('axes' )
2401
2358
self ._cachedRenderer = renderer
0 commit comments