|
3 | 3 | import gzip |
4 | 4 | import hashlib |
5 | 5 | import io |
| 6 | +import itertools |
6 | 7 | import logging |
7 | 8 | import re |
8 | 9 | import uuid |
@@ -278,14 +279,11 @@ def __init__(self, width, height, svgwriter, basename=None, image_dpi=72): |
278 | 279 | self.image_dpi = image_dpi # actual dpi at which we rasterize stuff |
279 | 280 |
|
280 | 281 | self._groupd = {} |
281 | | - if not rcParams['svg.image_inline']: |
282 | | - assert basename is not None |
283 | | - self.basename = basename |
284 | | - self._imaged = {} |
| 282 | + self.basename = basename |
| 283 | + self._image_counter = itertools.count() |
285 | 284 | self._clipd = OrderedDict() |
286 | 285 | self._markers = {} |
287 | 286 | self._path_collection_id = 0 |
288 | | - self._imaged = {} |
289 | 287 | self._hatchd = OrderedDict() |
290 | 288 | self._has_gouraud = False |
291 | 289 | self._n_gradients = 0 |
@@ -830,10 +828,11 @@ def draw_image(self, gc, x, y, im, transform=None): |
830 | 828 | "data:image/png;base64,\n" + |
831 | 829 | base64.b64encode(bytesio.getvalue()).decode('ascii')) |
832 | 830 | else: |
833 | | - self._imaged[self.basename] = ( |
834 | | - self._imaged.get(self.basename, 0) + 1) |
835 | | - filename = '%s.image%d.png' % ( |
836 | | - self.basename, self._imaged[self.basename]) |
| 831 | + if self.basename is None: |
| 832 | + raise ValueError("Cannot save image data to filesystem when " |
| 833 | + "writing SVG to an in-memory buffer") |
| 834 | + filename = '{}.image{}.png'.format( |
| 835 | + self.basename, next(self._image_counter)) |
837 | 836 | _log.info('Writing image file for inclusion: %s', filename) |
838 | 837 | _png.write_png(im, filename) |
839 | 838 | oid = oid or 'Im_' + self._make_id('image', filename) |
|
0 commit comments