Revision: 3927
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3927&view=rev
Author: mdboom
Date: 2007-10-08 05:45:23 -0700 (Mon, 08 Oct 2007)
Log Message:
-----------
Save image resolution in the PNG file.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/backends/backend_agg.py
trunk/matplotlib/lib/matplotlib/backends/backend_gtkagg.py
trunk/matplotlib/src/_backend_agg.cpp
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_agg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_agg.py 2007-10-05
22:11:32 UTC (rev 3926)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_agg.py 2007-10-08
12:45:23 UTC (rev 3927)
@@ -415,5 +415,5 @@
def print_png(self, filename, *args, **kwargs):
self.draw()
- self.get_renderer()._renderer.write_png(str(filename))
+ self.get_renderer()._renderer.write_png(str(filename),
self.figure.dpi.get())
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_gtkagg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_gtkagg.py 2007-10-05
22:11:32 UTC (rev 3926)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_gtkagg.py 2007-10-08
12:45:23 UTC (rev 3927)
@@ -97,6 +97,8 @@
0, 0, 0, 0, w, h)
if DEBUG: print 'FigureCanvasGTKAgg.done'
+ def print_png(self, filename, *args, **kwargs):
+ return FigureCanvasAgg.print_png(self, filename, *args, **kwargs)
"""\
Traceback (most recent call last):
Modified: trunk/matplotlib/src/_backend_agg.cpp
===================================================================
--- trunk/matplotlib/src/_backend_agg.cpp 2007-10-05 22:11:32 UTC (rev
3926)
+++ trunk/matplotlib/src/_backend_agg.cpp 2007-10-08 12:45:23 UTC (rev
3927)
@@ -2283,7 +2283,7 @@
{
_VERBOSE("RendererAgg::write_png");
- args.verify_length(1);
+ args.verify_length(1, 2);
FILE *fp;
Py::Object o = Py::Object(args[0]);
@@ -2344,6 +2344,13 @@
width, height, 8,
PNG_COLOR_TYPE_RGB_ALPHA, PNG_INTERLACE_NONE,
PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+
+ // Save the dpi of the image in the file
+ if (args.size() == 2) {
+ double dpi = Py::Float(args[1]);
+ size_t dots_per_meter = (size_t)(dpi / (2.54 / 100.0));
+ png_set_pHYs(png_ptr, info_ptr, dots_per_meter, dots_per_meter,
PNG_RESOLUTION_METER);
+ }
// this a a color image!
sig_bit.gray = 0;
@@ -2619,7 +2626,7 @@
add_varargs_method("write_rgba", &RendererAgg::write_rgba,
"write_rgba(fname)");
add_varargs_method("write_png", &RendererAgg::write_png,
- "write_png(fname)");
+ "write_png(fname, dpi=None)");
add_varargs_method("tostring_rgb", &RendererAgg::tostring_rgb,
"s = tostring_rgb()");
add_varargs_method("tostring_argb", &RendererAgg::tostring_argb,
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins