According to the Syntax and structure section of the JPEG page on wikipedia, the width and height of the image don't seem to be stored in the image itself -- or, at least, not in a way that's quite easy to find.
Still, quoting from JPEG image compression FAQ, part 1/2 :
Subject: [22] How can my program extract image dimensions from a JPEG
file?
The header of a JPEG file consists of
a series of blocks, called "markers".
The image height and width are stored
in a marker of type SOFn (Start Of
Frame, type N).
To find the SOFn
you must skip over the preceding
markers; you don't have to know what's
in the other types of markers, just
use their length words to skip over
them.
The minimum logic needed is
perhaps a page of C code.
(Some
people have recommended just searching
for the byte pair representing SOFn,
without paying attention to the marker
block structure. This is unsafe
because a prior marker might contain
the SOFn pattern, either by chance or
because it contains a JPEG-compressed
thumbnail image. If you don't follow
the marker structure you will retrieve
the thumbnail's size instead of the
main image size.)
A profusely
commented example in C can be found in
rdjpgcom.c in the IJG distribution
(see part 2, item 15).
Perl code
can be found in wwwis, from
http://www.tardis.ed.ac.uk/~ark/wwwis/.
(Ergh, that link seems broken...)
Here's a portion of C code that could help you, though : Decoding the width and height of a JPEG (JFIF) file