changeset 25:26035de12d53

imginfo : return size of an image file using 'convert'
author etienne
date Sun, 29 Sep 2002 17:31:55 +0000
parents 569cef7db099
children eff1b969ad75
files imginfo.m
diffstat 1 files changed, 39 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/imginfo.m
@@ -0,0 +1,39 @@
+## [h,w] = imginfo (filename) - Get image size from file
+##  hw   = imginfo (filename)
+## 
+## filename : string : Name of image file
+##
+## h        : 1      : Height of image, in pixels
+## w        : 1      : Width  of image, in pixels
+##    or
+## hw=[h,w] : 2      : Height and width of image 
+##
+## NOTE : imginfo relies on the 'convert' program.
+
+## Author:        Etienne Grossmann  <etienne@isr.ist.utl.pt>
+## Last modified: Setembro 2002
+
+function [h,w] = imginfo (fn)
+
+[res,status] = system(sprintf("convert -verbose %s /dev/null",fn),1);
+
+if status,
+  error (["imginfo : 'convert' exited with status %i ",\
+	  "and produced\n%s\n"],\
+	 status, res);
+end
+
+res = res(index(res," ")+1:length(res));
+
+i = index (res,"x");
+if ! i, error ("imginfo : Can't interpret string (i)\n%s\n", res); end
+
+j = index (res(i-1:-1:1)," ");
+if j<2, error ("imginfo : Can't interpret string (j)\n%s\n", res); end
+w = str2num (res(i-j:i-1));
+
+k = index (res(i+1:length(res))," ");
+if k<2, error ("imginfo : Can't interpret string (k)\n%s\n", res); end
+h = str2num (res(i+1:i+k));
+
+if nargout<2, h = [h,w]; end