http://php.net/manual/en/function.imagejpeg.phpQuote:
<?PHP
function getJPEGresolution($filename){
if(exif_imagetype( $filename)!= IMAGETYPE_JPEG) return(false);
$outRez=array();
// Read the file
$exif = exif_read_data($filename, 'IFD0');
ob_start(); // start a new output buffer
$image = file_get_contents($filename);
// grab DPI information from the JPG header
$outRez["xDPI"] = (int)(ord($image[15])>0? ord($image[15]) : $exif['XResolution'] );
$outRez["yDPI"] = (int)(ord($image[17])>0? ord($image[17]) : $exif['YResolution'] );
ob_end_clean(); // stop this output buffer
//correct output if header doesn't contain dpi info:: use exif info instead
$outRez["xDPI"] = ($outRez["xDPI"]>0? $outRez["xDPI"] : $exif['THUMBNAIL']['XResolution'] );
$outRez["yDPI"] = ($outRez["yDPI"]>0? $outRez["yDPI"] : $exif['THUMBNAIL']['YResolution'] );
//double check values; make sure it's just a number and not "72/1" ...
if(!is_numeric($outRez["xDPI"])) $outRez["xDPI"] = (int)substr($outRez["xDPI"], 0, strpos($outRez["xDPI"],"/",1));
if(!is_numeric($outRez["yDPI"])) $outRez["yDPI"] = (int)substr($outRez["yDPI"], 0, strpos($outRez["yDPI"],"/",1));
//xDPI and yDPI should equal in value... but we output both anyway...
return($outRez);
}//end function getJPEGresolution
?>