|
31 | 31 |
|
32 | 32 | import numpy as np
|
33 | 33 | from PIL import Image
|
34 |
| -from PIL.PngImagePlugin import PngInfo |
35 | 34 |
|
| 35 | +import matplotlib as mpl |
36 | 36 | from matplotlib import cbook, rcParams, __version__
|
37 | 37 | from matplotlib.backend_bases import (
|
38 | 38 | _Backend, FigureCanvasBase, FigureManagerBase, RendererBase)
|
@@ -503,24 +503,16 @@ def print_png(self, filename_or_obj, *args,
|
503 | 503 |
|
504 | 504 | if metadata is None:
|
505 | 505 | metadata = {}
|
506 |
| - if pil_kwargs is None: |
507 |
| - pil_kwargs = {} |
508 | 506 | metadata = {
|
509 | 507 | "Software":
|
510 | 508 | f"matplotlib version{__version__}, http://matplotlib.org/",
|
511 | 509 | **metadata,
|
512 | 510 | }
|
513 | 511 | FigureCanvasAgg.draw(self)
|
514 |
| - # Only use the metadata kwarg if pnginfo is not set, because the |
515 |
| - # semantics of duplicate keys in pnginfo is unclear. |
516 |
| - if "pnginfo" not in pil_kwargs: |
517 |
| - pnginfo = PngInfo() |
518 |
| - for k, v in metadata.items(): |
519 |
| - pnginfo.add_text(k, v) |
520 |
| - pil_kwargs["pnginfo"] = pnginfo |
521 |
| - pil_kwargs.setdefault("dpi", (self.figure.dpi, self.figure.dpi)) |
522 |
| - (Image.fromarray(np.asarray(self.buffer_rgba())) |
523 |
| - .save(filename_or_obj, format="png", **pil_kwargs)) |
| 512 | + mpl.image.imsave( |
| 513 | + filename_or_obj, np.asarray(self.buffer_rgba()), format="png", |
| 514 | + origin="upper", dpi=self.figure.dpi, |
| 515 | + metadata=metadata, pil_kwargs=pil_kwargs) |
524 | 516 |
|
525 | 517 | def print_to_buffer(self):
|
526 | 518 | FigureCanvasAgg.draw(self)
|
|
0 commit comments