2007年10月10日星期三

图像转EPS的小程序

现在用TeX,没办法,需要做这么一个东西

查了一下,TAMU很多年前有人做过这个东西了,

拿来直接改了改,都些非常小的改动,为了让程序更规范一点(其实主要是为了适应我自己的一些坏习惯,哈哈)

以示尊重,这个是原作者的网页链接http://www.cs.cmu.edu/~jkubica/code/matlabToEPS.html

下面是改过的代码,存在这里以防我哪天机器里面找不到这个文件了。说起来,我现在很多helper程序都是零散的放在各个文件夹下面,每次需要用的时候就copy一份到当前项目的路径。这样一方面是每次都需要去找相应的helper在什么地方那个,更严重的潜在问题是没法保证这些程序的同步更新,有功夫看来需要把东西全部整理起来作成一个toolbox了

如果有人不小心搜索到下面这段代码,欢迎引用或者修改。唯一的要求是保留其中全部的注释,特别是原作者的部分,如果你想使用源代码又不想尊重他的版权,请直接去上面的网站下载原始版本,这样你算是直接侵犯他的版权,我不用跟着挨骂,嘻嘻。

% convertToEPS(imgName,type)
% By Jeremy Kubica, 2001
%
% Uses Matlab to convert a image file into a EPS file.
% imgName - the name of the image file
% type - the file type
%
% Example: to convert file "sample.jpg" to "sample.esp"
% convertToEPS('sample','jpg');
% New file is saved as imgName.esp
% --------------------------------
% im2eps(imgName)
% Modified by Yuan REN, 2007
%
% Example: convertToEPS('sample.jpg');
%

function im2eps(imgName)

pic = imread(imgName);
[y x c] = size(pic);

h=figure('Units','Pixels','Resize','off',...
'Position',[100 100 x y],'PaperUnit','points',...
'PaperPosition',[0 0 x y]);
axes('position',[0 0 1 1]);
image(pic);
axis off

[temp1 temp2 temp3 name]=regexp(imgName,'.*(?=\.)'); %get rid of the extension; Actually, the last extension.
saveas(gcf,[name{1},'.eps'],'epsc');
close(h);

0 comments: