| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -509,10 +509,9 @@ def print_png(self, filename_or_obj, *args, | |||
| 509 | 509 | ||
| 510 | 510 | if metadata is None: | |
| 511 | 511 | metadata = {} | |
| 512 | - metadata = { | ||
| 512 | + default_metadata = { | ||
| 513 | 513 | "Software": | |
| 514 | 514 | f"matplotlib version{__version__}, http://matplotlib.org/", | |
| 515 | - **metadata, | ||
| 516 | 515 | } | |
| 517 | 516 | ||
| 518 | 517 | FigureCanvasAgg.draw(self) | |
@@ -521,9 +520,13 @@ def print_png(self, filename_or_obj, *args, | |||
| 521 | 520 | from PIL.PngImagePlugin import PngInfo | |
| 522 | 521 | # Only use the metadata kwarg if pnginfo is not set, because the | |
| 523 | 522 | # semantics of duplicate keys in pnginfo is unclear. | |
| 524 | - if "pnginfo" not in pil_kwargs: | ||
| 523 | + if "pnginfo" in pil_kwargs: | ||
| 524 | + if metadata: | ||
| 525 | + cbook._warn_external("'metadata' is overridden by the " | ||
| 526 | + "'pnginfo' entry in 'pil_kwargs'.") | ||
| 527 | + else: | ||
| 525 | 528 | pnginfo = PngInfo() | |
| 526 | - for k, v in metadata.items(): | ||
| 529 | + for k, v in {**default_metadata, **metadata}.items(): | ||
| 527 | 530 | pnginfo.add_text(k, v) | |
| 528 | 531 | pil_kwargs["pnginfo"] = pnginfo | |
| 529 | 532 | pil_kwargs.setdefault("dpi", (self.figure.dpi, self.figure.dpi)) | |
@@ -533,8 +536,8 @@ def print_png(self, filename_or_obj, *args, | |||
| 533 | 536 | else: | |
| 534 | 537 | renderer = self.get_renderer() | |
| 535 | 538 | with cbook.open_file_cm(filename_or_obj, "wb") as fh: | |
| 536 | - _png.write_png(renderer._renderer, fh, | ||
| 537 | - self.figure.dpi, metadata=metadata) | ||
| 539 | + _png.write_png(renderer._renderer, fh, self.figure.dpi, | ||
| 540 | + metadata={**default_metadata, **metadata}) | ||
| 538 | 541 | ||
| 539 | 542 | def print_to_buffer(self): | |
| 540 | 543 | FigureCanvasAgg.draw(self) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1539,12 +1539,16 @@ def imsave(fname, arr, vmin=None, vmax=None, cmap=None, format=None, | |||
| 1539 | 1539 | pil_shape = (rgba.shape[1], rgba.shape[0]) | |
| 1540 | 1540 | image = Image.frombuffer( | |
| 1541 | 1541 | "RGBA", pil_shape, rgba, "raw", "RGBA", 0, 1) | |
| 1542 | - if format == "png" and metadata is not None: | ||
| 1542 | + if format == "png" and metadata: | ||
| 1543 | 1543 | # cf. backend_agg's print_png. | |
| 1544 | - pnginfo = PngInfo() | ||
| 1545 | - for k, v in metadata.items(): | ||
| 1546 | - pnginfo.add_text(k, v) | ||
| 1547 | - pil_kwargs["pnginfo"] = pnginfo | ||
| 1544 | + if "pnginfo" in pil_kwargs: | ||
| 1545 | + cbook._warn_external("'metadata' is overridden by the " | ||
| 1546 | + "'pnginfo' entry in 'pil_kwargs'.") | ||
| 1547 | + else: | ||
| 1548 | + pnginfo = PngInfo() | ||
| 1549 | + for k, v in metadata.items(): | ||
| 1550 | + pnginfo.add_text(k, v) | ||
| 1551 | + pil_kwargs["pnginfo"] = pnginfo | ||
| 1548 | 1552 | if format in ["jpg", "jpeg"]: | |
| 1549 | 1553 | format = "jpeg" # Pillow doesn't recognize "jpg". | |
| 1550 | 1554 | color = tuple( | |
| Back | FazBrowse Home | New Git URL |
0 commit comments