dwww Home | Show directory contents | Find package

=begin

= ruby-libexif - libexif ¤ò ruby ¤«¤é»È¤¦¤¿¤á¤Î¥é¥¤¥Ö¥é¥ê¡£

libexif¤ÏEXIF¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¤¥á¡¼¥¸¤«¤é¥¿¥°¾ðÊó¤òÃê½Ð¤¹¤ë¤¿¤á¤ÎC¥é¥¤¥Ö¥é¥ê¤Ç¤¹¡£Ëܥ饤¥Ö¥é¥ê¤Ï(({exif(1)}))¤ÈƱÅù¤Îµ¡Ç½¤òruby¤«¤é¼ê·Ú¤Ë°·¤¦¤³¤È¤òÌÜŪ¤È¤·¤Æ¤¤¤Þ¤¹¡£

libexif, exif¤Ë¤Ä¤¤¤Æ¤Ï¡¢((<URL:http://libexif.sourceforge.net>))¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£

= »È¤¤Êý

 require 'exif'
 
 # ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Îimage.jpg¤«¤éExif¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¡£
 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]       ; ¥¿¥°¤ÎID¤ò16¿Êɽµ­¤·¤¿Ê¸»úÎó
 # 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)

ruby¤ÎString¥ª¥Ö¥¸¥§¥¯¥È¤ÇÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤ò¿·¤¿¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£¤¹¤Ç¤Ë¥Ç¡¼¥¿¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤ÏÇË´þ¤µ¤ì¤Þ¤¹¡£

--- 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

Generated by dwww version 1.15 on Mon Sep 1 14:08:32 CEST 2025.