require 'rexif' Jpeg::load('EXIF_FILE.JPG'){|seg| if(seg.marker==Jpeg::Segment::APP1) Exif.new(seg.marker,seg.byte_data){|dir| if(dir.tag==Exif::Ifd::Directory::Maker) puts dir end dir } else seg end } In this method, each return value of Jpeg::load()'s and Exif::new()'s block is treated as Jpeg segment data and Exif directory data, and those return values are stored to Jpeg object and Exif object