如何使用MATLAB从EPS文件中提取TIFF预览?

时间:2013-07-19 16:26:58

标签: matlab tiff eps

EPS文件可以包含嵌入式TIFF(很少是WMF)预览,以便在没有PostScript可用的环境中轻松渲染。 (有关详细信息,请参阅Wikipedia。)

鉴于这样的EPS,如何使用MATLAB将TIFF提取到单独的文件中?

1 个答案:

答案 0 :(得分:2)

% Define the source EPS file and the desired target TIFF to create.
source = 'ode_nonneg1.eps';
target = 'ode_nonneg1.tif';

% Read in the EPS file.
f = fopen(source,'rb');
d = fread(f,'uint8');
fclose(f);

% Check the header to verify it is a TIFF.
if ~isequal(d(1:4),[197;208;211;198])
    error 'This does not appear to be a vaild TIFF file.'
end

% Extract the TIFF data location from the headers.
tiffStart = sum(d(21:24).*256.^(0:3)')+1;
tiffLength = sum(d(25:28).*256.^(0:3)');

% Write the TIFF file.
f = fopen(target,'w');
fwrite(f,d(tiffStart:tiffStart-1+tiffLength),'uint8','b');
fclose(f);