jpegのdpiを取得

http://siisise.net/jpeg.html

<?php
function get_jpeg_dpi( $file ) {
    $JFIF_POS = 6;
    $JFIF_LEN = 4;
    $RESOLUTION_POS = 15; //YResolution
    $RESOLUTION_LEN = 2;
    
    $fh = fopen( $file, 'rb' );
    fseek( $fh, $JFIF_POS );
    $jfif = fread( $fh, $JFIF_LEN );
    fseek( $fh, $RESOLUTION_LEN );
    $h = fread( $fh, $RESOLUTION_LEN );
    $v = fread( $fh, $RESOLUTION_LEN );
    fclose( $fh);
    
    if ( $jfif != 'JFIF' ) {
        return;
    }
    
    // like array_combine()
    $vals = array_merge( unpack( 'c', $h ), unpack( 'c', $v ));
    $keys = array( 'h', 'v' );
    $ret = array();
    foreach($keys as $k => $v) {
        $ret[(string)$v] = $vals[$k];
    }
    
    return $ret;
}

var_dump( get_jpeg_dpi( 'path/to/hoge.jpg ) );
?>