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