1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
=begin
= ruby-libexif - libexif ruby ȤΥ饤֥ꡣ
libexifEXIFեޥåȤΥ饿Ф뤿C饤֥Ǥܥ饤֥(({exif(1)}))Ʊεǽrubyڤ˰ȤŪȤƤޤ
libexif, exifˤĤƤϡ((<URL:http://libexif.sourceforge.net>))ȤƲ
= Ȥ
require 'exif'
# ȥǥ쥯ȥimage.jpgExif֥Ȥ롣
exif = Exif.new('image.jpg')
# Exif֥ȤǡͿ롣
exif = Exif.new
File.open('image.jpg') { |f| exif << f.read }
# ΥȥѤͤ롣
p exif["Manufacturer"] # -> "FUJIFILM"
# IDѤͤ롣
p exif['0xa001'] # -> "FUJIFILM"
#
# ߤΤȤ֤ͤʸ֥Ȥ줵Ƥޤ
# ޤȤơ3ĤɽͿ뤳ȤǤޤ
# exif["Manufacturer"] ; Υȥ
# exif["Make"] ; EXIF-2.1ǵꤵ줿̾
# exif[0xa001] ; ID16ɽʸ
# IFDˤäƵꤵƤ륿μϰۤʤޤ
# (({Exif#ifd=}))ˤäŪIFDꤷʤ¤ꡢƤIFDоݤˤ
# õФб֤ͤȤޤŪIFDꤷ塢
# Τ褦ưᤷȤϡ(({Exif#ifd=}))ΰ
# (({Exif::IFD::Any}))(ŪѰդ⥸塼)ꤷƲ
#
# ξܺ٤ˤĤƤϡ(({Exif.[]}))ѤĴ٤뤳ȤǤޤ
# ޤIFDˤѲǽʥˤĤƤ(({Exif#list_tags}))
# ѤĴ٤뤳ȤǤޤ)
# ͥФե¸롣
File.open('thumb.jpg', 'wb') {|dest| exif.thumbnail(dest)}
# ͥꤹ롣¸ߤ륵ͥ˴롣
File.open('src.jpg', 'rb'){|src| exif.thumbnail = src.read }
= ե
== class Exif
=== 饹å
--- Exif.new
ǡExif֥Ȥޤ
--- Exif.new(fpath)
(({fpath}))ǻꤵ륤ɤߡExif֥ȤޤEXIFեޥåȤǤϤʤ硢㳰((<Exif::Error::NotExifFormat>))ȯޤ
--- Exif.[](tagid)
ʸͤǻꤵ((|tagid|))˴ؤޤ֤ͤ
['Υȥ', ['̾', '', 'ID()']]
Ǥ
=== å
--- Exif#load(fpath)
--- Exif#data=(str)
--- Exif#<<(str)
rubyString֥ȤͿ줿ǡ˥åȤޤǤ˥ǡåȤƤˤϡ˴ޤ
--- Exif#list_tags(ifd)
IFD ((|ifd|)) Ƥ륿ΥꥹȤ֤ޤǤ
["Υȥ", "ID('0xdddd')"]
ȤǤ((|ifd|))ˤ((<Exif::IFD>))ʲѤƲ
--- Exif#byte_order
ΥХȥ֤ޤ֤ͤ((<Exif::ByteOrder>))ͤǤ
--- Exif#ifd
ߤIFD(Image File Directory)ʸ֤ޤ
--- Exif#ifd=(ifd)
IFD(Image File Directory)ꤷޤ((|ifd|))((<Exif::IFD>))ʲѤƲ
--- Exif#[](tag)
ƤIFDϤäͿ줿(({tag}))Ĵ١бͤʸ֤ޤ((<Exif#ifd=>))ŪIFDꤷϡIFDˤƥƤСб֤ͤޤƤʤˤϡ㳰((<Exif::Error::TagNotFound>))ȯޤưᤷϡ((<Exif#ifd=>))((<Exif::IFD::Any>))ꤷƲ
--- Exif#each_entry(use_tag_id=false) {|tag, value| ...}
˴ޤޤ륿Υȥ(({tag}))ͤ(({tag}))Ȥơ֥å¹Ԥޤ((|use_tag_id|))(({true}))ΤȤ(({tag}))ˤϥID('0xdddd'ɽ)ޤ
--- Exif#extract_thumbnail(dest)
--- Exif#thumbnail(dest)
˴ޤޤ륵ͥ((|dest|))(({dest#<<}))Ѥƽߤޤ
== ⥸塼
== Exif::IFD
IFDμɽ
--- Exif::IFD::Zero
--- Exif::IFD::One
--- Exif::IFD::EXIF
--- Exif::IFD::GPS
--- Exif::IFD::Interoperability
--- Exif::IFD::Any
== Exif::ByteOrder
EXIFΥХȥɽ
--- Exif::ByteOrder::INTEL
--- Exif::ByteOrder::MOTOROLA
== 㳰饹
RuntimeError --- Exif::Error -+- Exif::Error::NotExifFormat
|- Exif::Error::InvalidIFD
`- Exif::Error::TagNotFound
--- Exif::Error
ruby-libexif㳰Ƥ㳰ޤϰʲΥ֥饹㳰°ޤ
--- Exif::Error::ExifFormat
Ϳ줿EXIFեޥåȤŬ礷Ƥʤ硢㳰ȯޤ
--- Exif::Error::InvalidIFD
((<Exif#ifd=>))ǡIFDꤷˡ㳰ȯޤ
--- Exif::Error::TagNotFound
((<Exif#[]>))ǡTagߤIFDǸĤʤäˡ㳰ȯޤ
--- Exif::Error::ThumbnailNotFound
((<Exif#thumbnail>))ǡ˥ͥ뤬ޤޤʤˡ㳰ȯޤ
=end
|