init commit
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
function fig_export(filename, format, folder, dpi, fig)
|
||||
% EXPORT_CHART Save the current MATLAB figure or a specified figure in the selected image format.
|
||||
%
|
||||
% Parameters:
|
||||
% - filename (string, optional): The output file name. If it has no extension, one will be
|
||||
% added based on the format. If missing or empty, a default
|
||||
% name 'exported_plot' is used.
|
||||
% - format (string): The desired file format for the export. Default is 'pdf'.
|
||||
% Accepted formats are 'png', 'jpg', 'tiff', 'svg', 'pdf', 'esp'.
|
||||
% - folder (string): The directory where the image file will be saved. Default is the current directory.
|
||||
% - dpi (int): Resolution in dots per inch. Default is 96.
|
||||
% - fig (figure handle, optional): The MATLAB Figure object to export. If empty, the current active figure is used.
|
||||
%
|
||||
% Notes:
|
||||
% - The function creates the folder if it doesn't exist.
|
||||
% - Ensures compatibility with supported MATLAB formats.
|
||||
|
||||
if nargin < 1 || isempty(filename)
|
||||
timestamp = char(datetime('now', 'Format','yyyyMMdd_HHmmSS'));
|
||||
filename = ['exported_plot_' timestamp];
|
||||
end
|
||||
if nargin < 2 || isempty(format)
|
||||
format = 'pdf';
|
||||
end
|
||||
if nargin < 3 || isempty(folder)
|
||||
folder = '.';
|
||||
end
|
||||
if nargin < 4 || isempty(dpi)
|
||||
dpi = 96;
|
||||
end
|
||||
if nargin < 5 || isempty(fig)
|
||||
fig = gcf;
|
||||
end
|
||||
|
||||
% Add extension if missing
|
||||
[~, ~, ext] = fileparts(filename);
|
||||
if isempty(ext)
|
||||
filename = [filename '.' format];
|
||||
else
|
||||
format = ext(2:end); % Use extension for format
|
||||
end
|
||||
|
||||
% Validate folder and create if necessary
|
||||
if ~exist(folder, 'dir')
|
||||
mkdir(folder);
|
||||
end
|
||||
|
||||
% Construct full file path
|
||||
filepath = fullfile(folder, filename);
|
||||
|
||||
% Format to '-d' option mapping
|
||||
supportedFormats = struct( ...
|
||||
'png', '-dpng', ...
|
||||
'jpg', '-djpeg', ...
|
||||
'tiff', '-dtiff', ...
|
||||
'svg', '-dsvg', ...
|
||||
'pdf', '-dpdf', ...
|
||||
'eps', '-depsc' ...
|
||||
);
|
||||
if ~isfield(supportedFormats, lower(format))
|
||||
error('Unsupported format "%s". Supported formats are: %s.', ...
|
||||
format, strjoin(fieldnames(supportedFormats), ', '));
|
||||
end
|
||||
|
||||
% Get the corresponding '-d' option
|
||||
dOption = supportedFormats.(lower(format));
|
||||
|
||||
% Attempt to save the figure
|
||||
try
|
||||
% Include resolution for raster formats
|
||||
if ismember(lower(format), {'png', 'jpg', 'tiff'})
|
||||
print(fig, filepath, dOption, ['-r' num2str(dpi)]);
|
||||
else
|
||||
print(fig, filepath, dOption);
|
||||
end
|
||||
fprintf('Exported image to: "%s" as %s\n', filepath, format);
|
||||
catch ME
|
||||
fprintf('Failed to export the figure: %s\n', ME.message);
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user