EPS files don't have specific pixel dimensions - they're essentially a vector format. You may happen to have raster data embedded in it, but that's besides the point.
The issue is likely the DPI or pixels/inch setting used to convert the image to raster format. Photoshop probably defaults to 300 pixels/inch or something, while the others default to 72. I'm not sure how you change the rendering res in PILfor EPS imports - but I almost guarantee that's where you need to look. Kevin. ----- Original Message ----- From: "Stefano Masini" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Monday, September 19, 2005 8:09 PM Subject: [Image-SIG] Correctly determine image size of a Photoshop EPS > Hello, > > I got hold of some EPS files evidently made with Photoshop. > It seems I can't convert them to jpeg while retaining the correct > size. The problem is that I need to know the original size because I > have to make decisions depending on that. > > I've got one that when opened in Photoshop is 1315x890, but anything > else gives me a 316x214 image. I tried with pil, imagemagick, exiftool > and freeimage. I think all of them except exiftool rely on > ghostscript. > > I figured the problem must be the BoundingBox being set to 0 0 316 214. > > This is extracted from the eps file: > > %%Creator: Adobe Photoshop Version 7.0 > %%Title: 102251N_c.eps > %%CreationDate: Fri Sep 16 2005 18:31:35 > %%BoundingBox: 0 0 316 214 > %%HiResBoundingBox: 0 0 315.6 213.6 > %%SuppressDotGainCompensation > %%DocumentProcessColors: Cyan Magenta Yellow Black > %%EndComments > %%BeginProlog > %%EndProlog > %%BeginSetup > %%EndSetup > %ImageData: 1315 890 8 4 0 1 6 "beginimage" > %BeginPhotoshop: 6362 > > So, first question: why is the BoundingBox set this way? Is it plain > wrong, or is there a rationale behind? > > Then I see the non standard %ImageData field. I found the following > info bout it: > > Photoshop 6.0 SDK > EPS Parameters for ImageData (Photoshop 3.0 and later) > > columns Width of the image in pixels > rows Height of the image in pixels > depth Number of bits per channel. Must be 1 or 8 > mode Image mode. Bitmap/grayscale = 1; Lab = 2; RGB = 3; CMYK = 4 > pad channels Number of other channels stored in the file. > Ignored when reading... > block size Number of bytes per row per channel. > Will be either 1 or formula (below): > 1 = Data is interleaved > (columns*depth+7)/8 = Data is stored in line interleaved format > or there is only one channel > binary/ascii 1 = Data is in binary format > 2 = Data is in hex ascii format > data start Entire PostScriptline immediately preceding the image data. > This entire line should not occur elewhere in the PostScript > header code, but it may occur at part of line > > So, since this is documented, why is it not implemented in any tool? > I guess I can answer that: because it's not standard and could change > without notice. > > But then I wonder: isn't there any support at all? How can a poor soul > know the size of a photoshop eps file without opening it with > photoshop? > > I can't believe others didn't have this problem. Did everybody have to > implement their own dirty parser and search for the %ImageData field > by themselves? > > Please help a poor soul, > thanks! > stefano > _______________________________________________ > Image-SIG maillist - [email protected] > http://mail.python.org/mailman/listinfo/image-sig > > _______________________________________________ Image-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/image-sig
