Statistiques
| Révision :

root / ase / io / png.py

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)