Statistiques
| Révision :

root / ase / io / png.py

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)