root / ase / io / png.py @ 14
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) |