public static Map < String , String > readImageData ( IIOImage oimage ) { Map < String , String > dict = new HashMap < String , String > ( ) ; IIOMetadata imageMetadata = oimage . getMetadata ( ) ; if ( imageMetadata != null ) { IIOMetadataNode dimNode = ( IIOMetadataNode ) imageMetadata . getAsTree ( "javax_imageio_1.0" ) ; NodeList nodes = dimNode . getElementsByTagName ( "HorizontalPixelSize" ) ; int dpiX ; if ( nodes . getLength ( ) > 0 ) { float dpcWidth = Float . parseFloat ( nodes . item ( 0 ) . getAttributes ( ) . item ( 0 ) . getNodeValue ( ) ) ; dpiX = ( int ) Math . round ( 25.4f / dpcWidth ) ; } else { dpiX = Toolkit . getDefaultToolkit ( ) . getScreenResolution ( ) ; } dict . put ( "dpiX" , String . valueOf ( dpiX ) ) ; nodes = dimNode . getElementsByTagName ( "VerticalPixelSize" ) ; int dpiY ; if ( nodes . getLength ( ) > 0 ) { float dpcHeight = Float . parseFloat ( nodes . item ( 0 ) . getAttributes ( ) . item ( 0 ) . getNodeValue ( ) ) ; dpiY = ( int ) Math . round ( 25.4f / dpcHeight ) ; } else { dpiY = Toolkit . getDefaultToolkit ( ) . getScreenResolution ( ) ; } dict . put ( "dpiY" , String . valueOf ( dpiY ) ) ; } return dict ; }
Reads image meta data .