2 Answers
2

Is there a good reason your output files are in JPEG format? EPS is a vector format, while JPEG is a lossy-compression bitmap format which is specifically optimized for photographs - i.e., images consisting of vaguely defined patches of variable color, as opposed to sharply defined solid areas, which is what vector images consist of.

So in converting (rasterizing) from any vector format to JPEG, you are basically guaranteed to get ugly edge artifacts and blotchy patches in what are supposed to be solid blocks of color. This will happen no matter what you do; it is inherent to the JPEG format. The way to minimize this is setting the compression to zero, but then you are getting none of the benefits and basically have no reason to be using JPEG.

Non-lossy bitmap formats like PNG, which is supported by all web browsers, are much better; they can give you solid colors and cleaner edges.

If it's someone else who is specifying the JPEG format for this project, I implore you to please, please, explain this to that person. Unfortunately the vast majority of people do not understand this very basic fact about the JPEG format, and only know that JPEG is the "default" bitmap format, so the web is full of misapplied horrible-quaility JPEG bitmap images - from corporate logos of multimillion-dollar corporations to work by so-called professional graphic designers.

If by chance your source EPS files have bitmap images embedded in them, and what you're trying to do is extract them, rather than rasterize vector data, I'm pretty sure the "ps2image" type of tools in Ghostscript will do the job instead.

The .eps file is rendered to a bitmap which is then compressed using JPEG compression and saved to a .JPG file.

The issue you are running into is that CMYK is designed for device output. Thus you will need to apply an appropriate ICC profile using Little CMS or PhotoShop/PhotoPaint. The appropriate profile depends on the output device. If, for example you are displaying the result on your monitor, you will need to use an your monitors ICC profile. If you are outputing the result to your office printer then you will need to use your office printer's ICC profile. Lower end devices typically do not come with an ICC profile, however, you might be able to download one for your device from the Internet. Image manipulation software like Photoshop or PhotoPaint do come with a selection of profiles that can be used.

You could try something like this, though I'm not sure if this will work or is correct. See the ImageMagick documentation for further help.