はじめに
イベント等でたくさんの写真を参加者に配布するような際、Webでサムネイル一覧から欲しい画像をクリックして元画像(サイズが大きい)を表示させる HTML を生成する AppleScript です。
利用方法
オリジナル画像のフォルダと、同名でサムネイル化した画像のフォルダを用意しておいて、スクリプトを起動し、どちらかのフォルダを指定します。サムネイル画像を一括で作成するスクリプトも公開していますので、それを利用すれば簡単にできます。(画像リサイズクリプトへのリンク)
処理の最後に「テキストエディット」が起動され、画面に生成されたHTMLテキストが表示されて実行が終了します。
内容を確認し、タイトル部分など必要な本文を追記して、保存します。
スクリプトのソース
ソースは以下のとおりですが、実行前にオリジナル画像のフォルダ名、サムネイル画像のフォルダ名、横に表示する列数をお好みで修正してご利用ください。
MakealbumHTML.scpt
-- アルバムを表示するHTMLファイルを生成するスクリプト
-- サムネイルを指定した列数で表示し、サムネイルをクリックするとオリジナル画像を別ウインドウに
-- 表示するHTMLファイルを生成する(画像データの名前が一致している必要があります)
-- 対象のフォルダは、サムネイル・オリジナルどちらかのフォルダを指定してください。
-- 「テキストエディット」を起動して、そこに結果をセットして終了しますので、
-- 内容を確認し、タイトルなどを追加してから、名前を付けて保存して利用してください。
-- Written by ynomura
set thumbDir to "thumbs/" -- サムネイル画像が入っているフォルダ名を指定
set orgDir to "org/" -- オリジナル画像が入っているフォルダ名を指定
set col to 5 -- 横に表示する列数を指定
set docType to "<!DOCTYPE HTML PUBLIC " & quote & "-//W3C//DTD HTML 4.01 Transitional//EN" & quote & ">"
set head to "<html>" & return & "<head>" & return
set meta to "<meta HTTP-EQUIV=" & quote & "Content-Type" & quote & " CONTENT=" & quote
set meta to meta & "text/html;CHARSET=UTF-8" & quote & ">" & return
set title to return & "<title><!-- Insert the title, here --></title>" & return & return
set body to "</head>" & return & "<body>" & return
set aText to docType & head & meta & title & body
set aText to aText & "<table>" & return & "<tr>" & return
set targetFolder to POSIX path of (choose folder with prompt "対象のフォルダー")
set aList to list folder of targetFolder
set cnt to 0
repeat with aData in aList
if (text of aData) = ".DS_Store" then
else
set aText to aText & "<td><a href=" & quote & orgDir & aData & quote & " target=" & quote & "_blank" & quote
set aText to (aText & "><img src=" & quote & thumbDir & aData as text) & quote
set aText to aText & "></a></td>" & return
set cnt to cnt + 1
if cnt ≥ col then
set aText to aText & "</tr>" & return & "<tr>" & return
set cnt to 0
end if
end if
end repeat
set aText to aText & "</tr>" & return & "</table>" & return & "</body>" & return & "</html>" & return
tell application "TextEdit"
activate
set text of document 1 to aText
end tell