- 用Matlab生成eps时,最好执行一下这个命令:
set(figHandle, 'InvertHardcopy', 'Off'); - 文本编辑器打开 fig.eps
- 删除 margin 部分的背景
- 如果文件头是 %!PS-Adobe-2.0 EPSF-1.2,
那么找到以 PR 结尾的一行,类似这样:
.....
c0
1 j
1 sg
0 0 5110 3574 PR % 就是它
6 w
0 2858 3960 0 0 -2858 664 3135 4 MP
PP
....
只要把带有 PR 的这一行注释掉就可以(注释符号也是%):
% 0 0 5110 3574 PR - 如果文件头是 %!PS-Adobe-3.0 EPSF-3.0,
那么找到以 rf 结尾的一行,将其注释掉(跟PR操作类似)
这时margin部分的背景就没得了。
- 如果文件头是 %!PS-Adobe-2.0 EPSF-1.2,
- 删除图形区域的背景。
这部分控制代码就在前面的例子中:
.....
c0
1 j
1 sg
% 0 0 5110 3574 PR % 已经被干掉了
6 w
0 2858 3960 0 0 -2858 664 3135 4 MP % 就是这
PP % 两行
....
上面标出来第一行以 MP 结尾,然后第二行只有一个 PP(为了方便这样
连续的两行叫做 MP-PP 组合)。也就是出现在 PR (或者rf) 之后的第一个
MP-PP组合试控制图形区域背景的,把它们注释掉就好了,即:
.....
c0
1 j
1 sg
% 0 0 5110 3574 PR % 2. 消除边界
6 w
% 0 2858 3960 0 0 -2858 664 3135 4 MP % 3. 消除图形部分
% PP %
.... - 删除图例部分背景。
图例部分的代码跟第3步一样,只要在文件中找到另一处 MP-PP 组合,
将其注释掉就可以,比如我的一个eps中图例部分是这样的:
...
90 rotate
1 sg
0 484 1037 0 0 -484 3501 820 4 MP % 图例就是
PP % 这两行
-1037 0 0 484 1037 0 0 -484 3501 820 5 MP stroke
...
改成:
...
90 rotate
1 sg
% 0 484 1037 0 0 -484 3501 820 4 MP
% PP
-1037 0 0 484 1037 0 0 -484 3501 820 5 MP stroke
...
注意:有很多行以 MP stroke结尾,还有以 MP 结尾,但第二行是 DP,这样的行都不是MP-PP组合,不要动它们。 - 保存fig.eps
这样的话,matlab出来的eps讨厌的白色背景就彻底清除了。
说明:
- 当然背景不限制是白色的,其它颜色这种方法也能将其去掉(好象 就是不画背景了)。
- 一点都不懂PS语法,这是试出来的,可能会失效。
没有评论:
发表评论