LoginSignup
1

More than 5 years have passed since last update.

写真アルバム用HTMLファイルを生成する AppleScript

Last updated at Posted at 2016-03-04

はじめに

 イベント等でたくさんの写真を参加者に配布するような際、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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1