TOP      ゲッター画像G      コンバートラーV      Linux版ダウンローダー      作者



■ 画像形式一括変換





「画像形式一括コンバート」です。

元々は「コンバートラーV」を作る前に書いていたページ・・・。





 画像形式一括変換

 パソコンでDVDビデオを楽しまれている方は多いでしょう。
 私もその1人です。
 TSUTAYAで借りてきたDVDを、就寝前に観るのはなかなか乙なものですね。

 ちなみに、私が自宅でDVD視聴用に使っているのは、「WinDVD Personal」という製品です。
 この製品には喜ばしい機能がありまして、視聴中に「ここイイ!」と思ったとき、キーボードの「p」を押
 しますと、画像のキャプチャー(静止画コピー)が出来る点です。

 おそらく「PowerDVD」など、同種の製品にも同じような機能があることでしょう。



 …こんな感じ。
 「WinDVD Personal」の場合、私のPCを例にとりますと
 c:\Documents and Settings\Administrator\My Documents\My Pictures\WINDVD Capture
 の中に、キャプチャー画像が溜まっていきます。
 (画像の溜まり場は、皆様のPC個々の環境によって、異なります。)

 さて、「p」(PrintScreen)ボタンで簡単に画像がコピーできるのは有難いのですが、何分にも画像
 がビットマップ形式(拡張子bmp)であるため、ファイルサイズの大きいのが難点です。
 1画像が894KBとして、1000画像で850MBを優に超えてしまいます。
 (はっきり言って、1000画像を超えるまで「あっという間」です…。)

 如何に「大容量ハードディスク」の時代とは言え、この状況は芳しくありません。

 そこで、「画像一括コンバーター」を作ってみようかと思ったのですが、少し調べてみると、ややや、
 既に良いものがありました。(詳しくは、以下参照。)

 でもまあ、これは「Linux版」なのですが。





 シェルスクリプト 

 ・・・この稿、初心者向けに書いてはいません。



 私が作ったものではありませんが、私の持っている本に、良いスクリプト例が載っていました。
 おまけに、そのサンプルがWebからダウンロードできるようにすら、なっていました。

 で、自宅のLinuxで、ちょっとやってみました。
 以下、手順。

 …この「手順書」は、私がサンプルスクリプトを元ネタに、Windowsとの連携プレーが出
  来るよう、内容を膨らませたものです…。

  要件:Linuxに「ImageMagick」がインストールされていること。
      …標準的なディストリなら、最初から入っています。


@ (Linux機で)ココから、サンプルソースをダウンロードします。
   …あ、そうそう。 rootでログインしておいてください。



A (Linux機で)それを展開します。

B (Windows機で)「WinDVD Personal」を使っているPCで、新規ユーザーを作成。
   (Administrator権限が無難。)
  ユーザー名:root
  パスワード:任意

  …LinuxからWindowsへの、ドライブ共有のための設定です。
   自宅でやるだけなので、rootで作っちゃっていいでしょう。
   (こうするのが一番簡単で、手っ取り早い。)

C (以下、最後までずっとLinux機で)
  Windows機のホスト名が仮に「hogewin」だとし、cドライブの共有名が「c」であるとして…。

  mkdir /mnt/cdrive
  smbmount //hogewin/c /mnt/cdrive

  …上記は「NetBIOS名前解決が出来る場合」、です。
  nmblookup hogewin で正常な結果が返ってくるかどうかで判断します。
  ※DNSで名前解決出来たところで、上記コマンドは不可と思います。 あくまで「NetBIOS名」です。

D パスワードを聞いてこられると思うので、Windowsで設定した「root」のパスワードを入力します。

E これでマウント完了。

F マウントディレクトリに移り、画像の入っているところまでcdコマンドで突進します。

  …私のPCなら、
  cd /mnt/cdrive/Documents\ and\ Settings/Administrator/My\ Documents/My\ Pictures/WINDVD\ Capture
  でしょうか。



H Aで展開して出来た「Web_Download」というディレクトリの中の、「6」の
  convert_fmt.bash
  util_common.bash
   の2ファイルを、Fで移ったディレクトリにコピーします。

I その2ファイルに、実行権が付いていることを確認します。
  なっていなければ、付けます。

J 同じディレクトリに、「converted」というディレクトリを作成します。
  …本当は何と言う名のディレクトリでも良いのですが、本の著者の例に倣いました。

K さて。 やっと本番!

 ./convert_fmt.bash -o ./converted/ bmp jpg
 と入力し、「ENTER」。
 (最後の引数は、他の画像形式でも良いです。 私はjpegとpngしか試しませんでしたが。)

L 画像のコンバートが始まります。
  画像変換はPCにとって、CPUを多大に消費する作業となりますので、それなりに時間がかかります。
  私のPC(セレロン2G)ですと、712個のbmpファイルをjpg変換するのに、約7分でした。
  (100Mbps 全二重の場合。 自宅はFastEthernetのスイッチングHUBです。 ちなみに、画像が
  ローカルにある場合で試してみたところ、約2分でOKでした。)
  png変換の場合はもう少し時間がかかりまして、約22分。(リモートドライブにて。)
  …最新のPen4ならもっと早いでしょう。

 追記:そう言えば、私がやってみたときはコンバート後のjpgファイルをLinux機に吐き出すようにコマンド
     を打ちました。
     勝手の分かる方ならそのようにした上で、結果ファイルをWindows機にとばした方が良いかも。


 …png変換の場合。 CPU使用率は78%です。


 …jpeg変換の場合。 CPU使用率は11%です。 わりと“あっさりエンジン”のようですね。


  …そう言えば、ホントに「100Full」出ているのか、ちゃんと確認するのを忘れました。(笑)

  ※面白いもので、マウント先からシェルを実行することが、出来るんですね。
   (だってそこは、Windowsのドライブ上なんですもん。)
   試しにやってみただけでしたが、うまくいきました。(^^)


出力結果イメージ(jpg変換の場合)↓



 …上の画像は縮小処理を施していますが、本スクリプトは画像のサイズ(縦横の長さのことです。)
  まで変更はしません。

M convertedディレクトリに移動して、
  ls | grep png | wc -l
   または
  ls | grep jpg | wc -l
  などとして、結果確認。

N 確認OKなら、
   cd ..
   rm -f *.bmp

O cd ~

P smbumount /mnt/cdrive

O 終了。
  これでWindows機の中は、ファイルサイズの小さな画像で差し替えられました。
  (=bmp画像が消去され、jpg画像で置き換わった。)





 でも本当は、上の説明には嘘があります。
 rootユーザでは、/mnt/cdrive/Documents\ and\ Settings/Administrator/ の中には入れませんね。
 ここに入ろうと思ったら、Administratorユーザーになることが必要です。

 そのあたり、「KNOPPIX3.9」で再度試してみました。


 smbmount //hogewin/c /mnt/cdrive/ -o username=Administrator

 こうすりゃいいですね。(何事も応用が利かせられないといけません。)
 尤も、“Administrator”のところは“administrator”でも、どっちでもいいようです。
 (なんせ、相手がWindowsですので・・・。)



…上の画像と同じもの(ビットマップ形式、712個)を使用し、jpeg変換してみたところ、
 リモートドライブからリモートドライブへの変換で、約11分でした。

 ※初心の方へ
  リモートドライブに画像を吐き出される場合は、リモートドライブの空き容量に注意してください。
  容量一杯一杯のところへconvertコマンドを発行すると、下手すりゃHDDを壊します。


 なお、KNOPPIXはramdrive上のディレクトリにファイルを保存することが出来ますが、
 設定変更すれば、HDD(ハードディスク)上に画像を落とすことも可能です。
 ↓


 ↑mountコマンドを実行したところ。
 「KNOPPIX」は、自分機に付いているHDDを“読み取り専用モード”でマウントする仕様です。

 ここで、mount -w -o remount /mnt/hda6
 などとしますと、/mnt/hda6を書き込みモードで再マウントします。
 ↓



 再度mountコマンドを叩いてみたところ。
 /mnt/hda6 の行が、“rw”に変わっていますね。
 (“r”は読み取り、“w”は書き込みの略です。)

 ※初心の方は真似しないでください。
  下手に操作すると、パソコンに入っているWindowsを壊す危険があります。
  (「KNOPPIX」が“読み取り専用モード”を仕様としているのには、それ相応の意味があると言うことです。)

 こうすれば、./convert_fmt.bash -o /mnt/hda6/tmp/ bmp jpg なんてのも可能です。
 ちなみに、このパターンでも同様のファイルで約10分でした。
 「WhiteBox4.0」と大して変わらん。 「KNOPPIX」はなかなかの性能ですね。





 でも実は、上の説明にもまだ言葉足らずなところがあります。
 LinuxからNTFSへの「読み書きモード」でのマウントは、推奨されていないようです。

 …なので、ext2、ext3のパーティションがあればそちらをマウントされた方が無難ですし、もし
  それが無ければ「FAT32」パーティションをお探しください。
  ※USBフラッシュメモリなども有効です。 「KNOPPIX」は難なくフラッシュメモリを認識してくれます…。



…で。 「KANOTTIX」にてHDD上のext3を書き込みマウントし、
  まどか画像をjpg変換してみました。 ↓



…上記画面コンソールのように、
 cat /proc/filesystems
 と打って、“NTFS”や“VFAT”(FAT32のこと。)の行が存在するようなら、Windowsへのマウントが可能です。
 ・・・ちなみに私の「WhiteBox4」ですと、デフォルトでWindowsマウント×でした。 「Fedora4」ならどうでしょ??





 「画像ファイル名一括変換スクリプト」
 …「WinDVD」でキャプチャーした画像を、“一括ファイル名変換”するスクリプトを作りました。
  ※こちらは借り物ではなく、自作です。(とは言っても、大したものではありませんが。(笑))



このフリーソフトに関するご感想/ご質問は こちら までお送りください。           製作者ハンドルネーム Ikkyu(一求)

            


TOP      ゲッター画像G      コンバートラーV      Linux版ダウンローダー      作者