I think I need a language lawyer.  I'm finding that PIL 1.1.7 can't
import EPS files output by Adobe Illustrator.  It chokes on the
following sequence of lines in the header:

%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Adobe Illustrator(R) 8.0
%%AI8_CreatorVersion: 13.0.0
%%For: (Administrator) ()
%%CreationDate: 8/20/2008 6:47 PM
%%BoundingBox: 0 0 2801 2801
%%HiResBoundingBox: 0 0 2800.5 2800.5
%%DocumentProcessColors: Cyan Magenta Yellow Black
%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
%%+ procset AGM_Gradient 1.0 0
%%+ procset Adobe_ColorImage_AI6 1.3 0
%%+ procset Adobe_Illustrator_AI5 1.3 0
%%+ procset Adobe_pattern_AI5 1.0 0
%%+ procset Adobe_cshow 2.0 8
%%+ procset Adobe_shading_AI8 1.0 0
%AI5_FileFormat 4.0
%AI3_ColorUsage: Color
%AI3_IncludePlacedImages
[...]

When I look at it with pdb, the problem seems to be the %AI5 and %AI3
lines -- they don't match the header line template, though I believe
they are valid Postscript comments:

(Pdb) !Image.open("/project/uplib/samples/postscript/badfoo.eps")
!Image.open("/project/uplib/samples/postscript/badfoo.eps")
*** IOError: bad EPS header
(Pdb) l
201                         if k[:8] == "PS-Adobe":
202                             self.info[k[:8]] = k[9:]
203                         else:
204                             self.info[k] = ""
205                     else:
206  ->                     raise IOError, "bad EPS header"
207     
208                 s = fp.readline()
209     
210                 if s[:1] != "%":
211                     break
(Pdb) p s
'%AI3_ColorUsage: Color'
(Pdb) field
<_sre.SRE_Pattern object at 0x4798a0>
(Pdb) field.match(s)
(Pdb) ^D

So, are Postscript comments allowed in the DSC headers?  That is, is
this a PIL bug or an Illustrator bug.

Bill
_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to