root / ase / io / png.py @ 19
Historique | Voir | Annoter | Télécharger (1,07 ko)
1 |
from ase.io.eps import EPS |
---|---|
2 |
|
3 |
|
4 |
class PNG(EPS): |
5 |
def write_header(self): |
6 |
from matplotlib.backends.backend_agg import RendererAgg |
7 |
|
8 |
try:
|
9 |
from matplotlib.transforms import Value |
10 |
except ImportError: |
11 |
dpi = 72
|
12 |
else:
|
13 |
dpi = Value(72)
|
14 |
|
15 |
self.renderer = RendererAgg(self.w, self.h, dpi) |
16 |
|
17 |
#self.gc = GraphicsContextBase()
|
18 |
#self.gc.set_linewidth(2)
|
19 |
|
20 |
def write_trailer(self): |
21 |
renderer = self.renderer
|
22 |
if hasattr(renderer._renderer, 'write_png'): |
23 |
# Old version of matplotlib:
|
24 |
renderer._renderer.write_png(self.filename)
|
25 |
else:
|
26 |
x = renderer._renderer.buffer_rgba(0, 0) |
27 |
from matplotlib import _png |
28 |
_png.write_png(renderer._renderer.buffer_rgba(0, 0), |
29 |
renderer.width, renderer.height, |
30 |
self.filename, 72) |
31 |
|
32 |
|
33 |
def write_png(filename, atoms, **parameters): |
34 |
if isinstance(atoms, list): |
35 |
assert len(atoms) == 1 |
36 |
atoms = atoms[0]
|
37 |
PNG(atoms, **parameters).write(filename) |