RubyでExifを扱う
Date:2018-12-23 02:37:36 +0900
Categories: Photography
Categories: Photography
概要
RubyでJPG入るのExifを扱って表示してみる
きっかけ
毎回インスペクタを見たり、ツールを使って1ファイルずつ見るのがめんどう。ブログに書くときにだいたい決まった形式で表示したい。
方法
gemのexifrを使うと簡単に取れそう
[embed]https://github.com/remvee/exifr/[/embed]
手順
インストール
# console $ gem install exifr --no-ri --no-rdoc Fetching: exifr-1.3.5.gem (100%) Successfully installed exifr-1.3.5 1 gem installed
実行
# pry console > require 'exifr/jpeg' => true > exif = EXIFR::JPEG.new('/Users/ryo/Downloads/Photos/DSC04117.jpg') => #<EXIFR::JPEG:0x00007fe3725b3 # exifが存在するか > exif.exif? => true # データ構造 > exif.exif => [{:image_description=>" ", :make=>"SONY", :model=>"ILCE-7M3", :orientation=>#<EXIFR::TIFF::Orientation:TopLeft(1)>, :x_resolution=>(350/1), :y_resolution=>(350/1), :resolution_unit=>2, :software=>"ILCE-7M3 v1.00", :date_time=>2018-12-19 14:52:08 +0900, :ycb_cr_positioning=>2, :exposure_time=>(1/200), :f_number=>(9/5), :exposure_program=>1, :iso_speed_ratings=>320, :date_time_original=>2018-12-19 14:52:08 +0900, :date_time_digitized=>2018-12-19 14:52:08 +0900, :compressed_bits_per_pixel=>(4/1), :brightness_value=>(4757/1280), :exposure_bias_value=>(0/1), :max_aperture_value=>(217/128), :metering_mode=>2, :light_source=>0, :flash=>16, :focal_length=>(85/1), :user_comment=>"", :color_space=>1, :pixel_x_dimension=>6000, :pixel_y_dimension=>4000, :custom_rendered=>0, :exposure_mode=>1, :white_balance=>0, :digital_zoom_ratio=>(1/1), :focal_length_in_35mm_film=>85, :scene_capture_type=>0, :contrast=>0, :saturation=>0, :sharpness=>0, :lens_model=>"FE 85mm F1.8"}, {:compression=>6, :image_description=>" ", :make=>"SONY", :model=>"ILCE-7M3", :orientation=>#<EXIFR::TIFF::Orientation:TopLeft(1)>, :x_resolution=>(72/1), :y_resolution=>(72/1), :resolution_unit=>2, :software=>"ILCE-7M3 v1.00", :date_time=>2018-12-19 14:52:08 +0900, :jpeg_interchange_format=>38912, :jpeg_interchange_format_length=>10917, :ycb_cr_positioning=>2}] # 各種データ > exif.width => 6000 > exif.height => 4000[19] pry(main)> exif.model => "ILCE-7M3" > exif.lens_model => "FE 85mm F1.8" > exif.f_number => (9/5) > exif.f_number.to_f => 1.8 > exif.exposure_time => (1/200) > exif.iso_speed_ratings => 320
めっちゃ簡単にデータ取れるじゃん。最高。
Tweet