M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2011年5月13日 23:37

画像の時刻を調整することでiPadに取り込む画像をファイル名順になるようコントロールするスクリプト

このエントリーをはてなブックマークに追加 mixiチェック

iPadにCamera Connection Kitを使って画像や写真を転送する際、時刻をファイル名順に書き換えてしまい、画像の順番を調整するスクリプトです。

iPadの写真アプリでプレゼンをしろとかいう無茶ぶりをされたときに使いましょう。使い方はスクリプトを見て想像してください。見てわからなければ使用禁止です。

Filename: exiforder.pl

#!/usr/bin/perl
 
use strict;
use warnings;
use DateTime;
use FindBin::Real;
use File::Spec;
use Image::ExifTool;
 
chdir FindBin::Real::Bin();
 
# iPadのCamera Connection Kitで取り込んだ時「イベント」としてまとめられる日付
my $dt = DateTime->new( year => 2011, month => 5, day => 13, )
                 ->set_time_zone('Asia/Tokyo');
my $e = Image::ExifTool->new;
 
my $workdir = 'images'; # 画像が入っているディレクトリ
 
foreach ( glob File::Spec->catdir( $workdir, '*' ) ) { # jpgもpngも対象
 
  my $filename = $_;
  my $date_string = $dt->strftime('%Y:%m:%d %H:%M:%S');
  print "$date_string\n";
  my $i = $e->ImageInfo($filename);
  
  # Exifに日付関連のタグが入っているか
  my $change;
  for ('CreateDate', 'DateTimeOriginal', 'ModifyDate') {
    if ( exists $i->{ $_ } ) {
      $e->SetNewValue( $_ => $date_string );
      $change = 1;
    }
  }
  if ( $change ) { # Exifに日付関連タグがあった場合
    $e->WriteInfo( $filename );
  }
  else { # Exifに日付関連タグがなかった場合
    utime $dt->epoch(), $dt->epoch(), $filename;
  }
  
  $dt->add( minutes => 1 ); # 時刻を1分進める
}
 
exit;
 
__END__

Exif情報がない場合は、ファイルの作成日と更新日を書き換え、Exif情報がある場合は、Exifの日付関連のタグを書き換えます。

これで勝つる! ていうかまともなプレゼンソフト使いたかった……

投稿 大野 義貴 [パソコン・インターネット] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3585

コメントする