function theOutputInfo = fig2jpeg(theFilename, theFigure, theQuality)

% fig2jpeg -- Save a visible figure in JPEG format.
%  fig2jpeg('theFilename', theFigure, theQuality) saves theFigure
%   (must exist and be visible; default = gcf) to 'theFilename'
%   (default = 'unnamed.jpg'), with theQuality (default = 100).
%   If no filename is given, the Matlab "uiputfile" dialog is
%   invoked.  If an output argument is provided, the "imfinfo"
%   string is returned.
 
% Copyright (C) 2000 Dr. Charles R. Denham, ZYDECO.
%  All Rights Reserved.
%   Disclosure without explicit written consent from the
%    copyright owner does not constitute publication.
 
% Version of 03-Jan-2000 17:35:28.
% Updated    04-Jan-2000 14:03:25.

if nargout > 0, theOutputInfo = []; end

if ~any(findobj('Type', 'figure', 'Visible', 'on'))
	disp(' ## No visible figures.')
	return
end

if nargin < 1
	[f, p] = uiputfile('unnamed.jpg', 'Save Figure As JPEG:');
	if ~any(f)
		help(mfilename)
		return
	end
	if p(end) ~= filesep, p(end+1) = filesep; end
	theFilename = [p f];
end
if nargin < 2, theFigure = gcf; end
if nargin < 3, theQuality = 100; end

theOldFigure = gcf;

figure(theFigure)
[x, map] = getframe(theFigure);
imwrite(x, map, theFilename, 'jpg', 'Quality', theQuality)

figure(theOldFigure)

if nargout > 0
	theOutputInfo = imfinfo(theFilename);
end
