I think I have some interesting information to add to this thread.
I recently purchased the
Adobe CS5 Creative Suite and was (
unpleasantly) surprised to find that the
Photoshop no longer writes the
JFIF resolution information to the header of the
.jpg files it outputs.
Now although I agree with Mike that there is nothing in the "standards" that forbids dropping that little block of information in order to be more compatible with the EXIF standard, it is nevertheless a reality that there are hundreds or even thousands of old software programs and devices which rely upon that bit of information being in place in order to work properly.
For
Adobe to simply have 'dropped' this bit of header information without even giving the user the option to write it or not is, to say the least, a little bit irresponsible. But, OK, all is not lost.
So, what does that old header look like? I refer you to my attachment ( Capture_00025.text ) which is a text file of the header information of a
.jpg file written from
Adobe Photoshop version 7.
If you don't feel like looking at that file, I've extracted the important
JFIF data, which precedes the
EXIF data and which looks like this sample below:
---- JFIF ----
JFIF Version : 1.02
Resolution Unit : inches
X Resolution : 180
Y Resolution : 180Now, if that little bit of information isn't in the header information of the
.jpg file, and if the software or device in question isn't programmed to search further for appropriate resolution information, than in all likelihood the file will be relegated to the default printing resolution of the program or device (usually 72 dpi).
So what happens if you DO have an older bit of software (or device) which isn't able to properly read these newer files?
You have three options.
The first option is to get your old device or software updated. This would be the best of all worlds, but is in many cases simply a pipe dream. Many fine older programs and devices are essentially
'orphaned' by reason of age, companies which are no longer in business, or simply a lack of administrative or programmer interest (read:
"not financially interesting").
The second option is to send the
.jpg file through some other image retouch program which will write a correct and usable file header which will be compatible with the older programs. For example, if you push the file through an older version of the
Photoshop (or the freeware alternative
The Gimp) you will end up with a correctly-written header. Unfortunately,
.jpg format files do not like to be recompressed, and one sometimes gains unwanted degradation of artifacts in so doing.
The third and most elegant solution is to rewrite the header portion of the
.jpg file without altering the photo data. I can suggest two solutions (there are doubtless others to be found) if you are up for this.
The first is a very fine program called
Exiftool (currently at version 8.28) which allows all sorts of clever reading and manipulations of the .jpg file header information. This program is the be-all, do-all where file header manipulations are concerned. The downside to this program is that it does not have a graphical user interface. This means using it on command lines. I admit that this is something of a problem for the casual user.
The second option is our old friend,
IrfanView. There is good news, bad news, and then more good news in respect to this piece of software. The good news is that
IrfanView is able to rewrite that important file header information without messing with the image data. The bad news is that
IrfanView (version 4.27) is also one of the programs which cannot correctly read the resolution data of a
.jpg if the
JFIF header is missing. And the further good news is that this will soon be corrected (more on that below).
Now, if you want to 'fix' your
.jpg file information header with
IrfanView, do the following:
Open your
.jpg file[/li][/list]
Then go to
'Options / JPG Lossless Rotation' (you did remember to install those plugins, yes?)[/li][/list]
Obviously, you will not rotate the file, but also to be found in the
JPG Lossless Rotation plugin is an option to change the resolution of the file.[/li][/list]
Just enter in the proper
X and
Y resolutions in the boxes and (re)write your file. Eazy-Peazy!
[/li][/list]
Now I did mention that
IrfanView (version 4.27) does not correctly read the file header of
.jpg files which do not currently have the
JFIF resolution information in the file header. This means that the above method works a treat if you already know the resolution you want to plug into the file, but what if the
.jpg comes from somewhere else and you have no idea of the correct resolution? Currently this means that you will have to find another program which allows you to 'read' the correct resolution. In practice, if you open the file with the
Photoshop (or similar) you will be able to see the correct X and Y resolution).
The good news for the future is that I have already informed
Mr. Irfan Skiljan of the problem with
jpg format files written by the new version in
Photoshop CS5 and he is rewriting portions of his fine program,
IrfanView, to not only be correctly resolution aware when reading
.jpg files without the
JFIF header, but to also more easily 'repair'
.jpg files which have to go to older devices. I cannot tell you exactly when the updated version will appear, but I feel it will be soon, as I am already engaged in assisting him by testing updated code.
I do hope that this is of some use to all of you.
Cheers,
- Ignatz