fig格式图像正常,但通过手动导出后的eps格式图像导入到AI中会乱码,如下图所示
一、主要问题应该是:
文件名中的字符和格式受到了操作系统和文件系统的限制,具体而言是 figure
的'Name'
属性中包含了特殊字体或字符(如逗号),而这些字体在 EPS 查看器中不可用,可能会导致乱码
如这里的窗口标题中存在逗号
这里解释一下:一个
figure图像有两个名字,一个是
文件名, 这是在文件系统中用来标识和存储图像文件的名称;另一个是窗口标题, 这个是通过'Name'
属性来指定的。
二、解决方法:
第一种方法
修改Name属性,
Matlab
% 获取当前活动的图形窗口句柄
hFig = gcf;
% 更改其名字
set(hFig, 'Name', 'New Figure Name');
之后再手动另存为eps格式
第二种方法
直接使用代码
Matlab
% 获取当前图形句柄
figHandle = gcf;
% 设置图形窗口的名字(如 MyPlotWindow)
set(figHandle, 'Name', 'MyPlotWindow');
% 获取图形窗口的名字并处理为文件名
figName = get(figHandle, 'Name');
figNameForFile = strrep(figName, ' ', '_'); % 替换空格为下划线
outputFileName = [figNameForFile, '.eps'];
% 使用 exportgraphics 函数导出为 EPS 格式
exportgraphics(figHandle, outputFileName, 'BackgroundColor', 'none', 'ContentType', 'vector');
% 设置 BackgroundColor 为 'none' 以确保背景是透明的(如果支持)
% 显示输出文件名,以便确认
disp(['EPS 文件已保存为: ', outputFileName]);
使用 exportgraphics
并明确指定 ContentType
为 'vector'
时,MATLAB 会尝试将字体嵌入到 EPS 文件中,从而避免乱码问题