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