How to | サムネイル画像のフォルダを作成する方法
非常によく行うバッチ処理タスクの一つに,1つ以上のシステムフォルダに入っている複数の画像の大きさを小さくし,結果としてサムネイル画像を構築するということがある.Wolfram言語のファイル操作であるImport,Export,Thumbnailは一緒に使うと,このタスクをプログラム的に行う効率的な方法を提供してくれる.実際,ImportおよびExportは,Wolfram言語におけるほとんどのバッチ処理に不可欠なものである.
まず,特定の場所にあるすべての画像のリストを得る.以下はWolframシステムのExampleDataディレクトリにある画像を見付け,そのそれぞれに対して完全パスを返す:
files = FileNames[{"*.jpg", "*.jp2", "*.bmp", "*.tiff", "*.png"}, FileNameJoin[{$InstallationDirectory, "Documentation", "English", "System", "ExampleData"}]];FileNameTakeを使って完全パスを使わずにファイル名を見る:
FileNameTake[#, -1]& /@ files今度はそれぞれの画像からサムネイルを作成し,それを別のディレクトリに保存する.ここではディレクトリはWolframシステム内から作成される.便利なことにCreateDirectoryは,使用中のコンピュータシステムの一時ディレクトリ用のデフォルトの場所にディレクトリを作成する:
dir = CreateDirectory[];現行の作業ディレクトリを新しく作成した一時ディレクトリに変更する:
SetDirectory[dir];im = Import[First@files];Thumbnailを"Tiny"と一緒に使ってもとの画像の非常に小さいサムネイルを作成する:
th = Thumbnail[im, "Tiny"]Exportを使ってサムネイルを保存する.保存するファイルパス,エキスポートする画像(ここではth ),そしてそのファイル形式を指定する必要がある:
Export[FileNameTake[First@files, -1], th, "JPEG"]任意の適切なループ構文を使ってこの一連のステップはいくつのファイルやディレクトリに対しても行うことができる.単一のネストした式に個々のステップを集めて,選択したディレクトリ内のファイルすべてで反復させる:
ThumbFiles = Export[FileNameTake[#, -1], Thumbnail[Import[#], "Tiny"], "JPEG"]& /@ filesFileByteCountを使ってそれぞれのサムネイルのバイトカウントを調べる:
FileByteCount /@ %比較のために,以下にもとのファイルのバイトカウントを挙げる:
FileByteCount /@ filesImport /@ FileNames[ThumbFiles]