|
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