ラベル image の投稿を表示しています。 すべての投稿を表示
ラベル image の投稿を表示しています。 すべての投稿を表示

2013年3月9日土曜日

フォルダの花粉情報予測マップを見やすくする画像をImageMagickで作成

フォルダの背景画像に、日本気象協会のサイトの花粉飛散メッシュ画像(花粉情報予測マップ/地図)を貼り付けているのですが、ファイルのアイコンとファイル名が読みにくいので何とかしたいと考えました。

そこで、アイコンやファイル名の部分を白っぽくして見やすくしてみました。
アイコンやファイル名がある部分に楕円形の半透明の楕円を描きファイル名などを見やすくします。それ以外の部分は透明にして、花粉情報予測マップがそのまま見えるようにします。
下のPNG画像が半透明のオーバーラップ用の画像です。白と透明なので見えないと思いますが、下の空白部分の中心辺りをクリックするとわかります。そのままダウンロードしても使えると思います。
オーバラップ用半透明PNG画像
わかりにくいので、プレビューで表示した場合のスクリーンショットも載せます。


上の画像を作るのに、グラフィックソフトだと位置合わせを何度もするのが面倒そうなので、ImageMagickのコマンドを使ってみました。
花粉情報予測マップと上の画像を重ね合わせてフォルダのバックグラウンドにしたのが下の図です。その結果、以前のように花粉飛散情報をあまり隠さず、ファイル名などもある程度読みやすくなったと思います。

最後に、今回使ったImageMagickのコマンド(シェルスクリプト)を参考に載せます。

アイコンを隠す部分をupper.png、ファイル名を隠す部分をlower.pngにして、その2つをcell.pngとして連結しています。cell.pngを3x5に並べてcover.pngとしています。
最後に、花粉情報予測マップ画像の上に重ねています。

コマンドやオプションの詳細は、http://www.imagemagick.org/Usage/canvas/ などを見ていただければと思います。

ImageMagickはMacPortsでインストールして、画像フォーマットの変換に使っていただけです。でも、今回調べて、convertコマンドで相当のことができることがわかりました。
また、何か機会があれば使ってみたいと思います。



#!/bin/sh

#set -x
cellw=180
cellh=93
ucellh=58
lcellh=$(($cellh - $ucellh))

# generate upper cell
convert -size ${cellw}x$ucellh xc:none \
    -size $(($cellw * 130 / 100 / 3))x$(($ucellh * 130 / 100)) \
    radial-gradient:white-none -gravity center -composite upper.png

# generate lower cell
convert -size $(($lcellh * 141 / 100))x$(($lcellh * 141 / 100)) \
    radial-gradient:white-none \
    -resize ${cellw}x$(($lcellh * 141 / 100))\! -gravity center \
    -crop ${cellw}x$lcellh+0+0 lower.png

# concatenate upper and lower cell to make a tile cell image
montage -background none -tile 1x2 -mode Concatenate upper.png \
    lower.png cell.png

# tile cells to make cover iamge
montage -background none -tile 3x5 -mode Concatenate \
    -duplicate 14 cell.png cover.png

# overlap cover image onto pollen map image
convert pollen_mesh_large.jpg cover.png -composite kafun.png

2013年3月3日日曜日

フォルダの背景の花粉情報予測マップ画像表示の自動化 (スクリプト編)

前の記事でフォルダの背景に花粉情報予測マップ/地図の表示を毎日、自動でできるようにしました。
ただ、読んでいただけた方にはわかると思いますが、結構手順が長いです。ブログを書くのも相当時間がかかりました。Automatorはある程度決まったことを行うのは便利ですが、細かいところを弄ろうとすると冗長な感じがします。

そこで、今回は、手順が短くなることを期待してスクリプトベースで、花粉マップを更新したいと思います。スクリプトは、シェルスクリプトとAppleScriptを考えています。

花粉マップを表示するフォルダは、Automatorの時と同じくtest、花粉マップをダウンロードするフォルダは、test/kafunにします。

例によって、流れは以下のとおりです。
  1. 花粉マップ画像をダウンロード
  2. AppleScriptで花粉マップ画像をフォルダの背景に設定
  3. crontabで自動実行をスケジュール

1. curlコマンドで花粉マップ画像をダウンロード

できるだけMac OS Xにはじめから入っているコマンドで実行したいと思います。花粉マップ画像のダウンロードはcurlコマンドを用います。フォルダ(ディレクトリ)をダウンロードする場所に移り、古い花粉マップを別名で保存しておき、ダウンロードします。
次のようになります。

cd /Volumes/Disk1/DL/test/kafun
mv -f pollen_mesh_large.jpg pollen_mesh_large.jpg.old
curl -sO http://season.tenki.jp/component/images/pollen_mesh_large.jpg


2. AppleScriptで花粉マップ画像をフォルダの背景に設定

AppleScriptは以下のようになります。


tell application "Finder"

set theFolder to "/Volumes/Disk1/DL/test" as POSIX file

set theFile to "/Volumes/Disk1/DL/test/kafun/pollen_mesh_large.jpg" as POSIX file

open folder theFolder
set background picture of the icon view options of window 1 to theFile
end tell


上記のApplescriptをシェルからosascriptコマンドで実行します。理由は、1.と2.のスクリプトを一つのファイルにしたいためです。

1.と2.のスクリプトをまとめて整形したものが以下です。AppleScriptの2回目のset background pictureは前回の記事と同じで、対象のフォルダを開きっぱなしにしておくと設定がすぐに反映されなかったためです。


#!/bin/sh

TARGET="/Volumes/Disk1/DL/test"
DLURL="http://season.tenki.jp/component/images/pollen_mesh_large.jpg"
DLFolder="/Volumes/Disk1/DL/test/kafun"
IMG=`basename "$DLURL"`
IMGPath="$DLFolder/$IMG"

cd "$DLFolder"
if [ -e "$IMG" ]; then
    mv -f "$IMG" "$IMG.old"
fi
curl -sO "$DLURL"

cat <<EOF | osascript >/dev/null
tell application "Finder"
    set theFolder to "$TARGET" as POSIX file
    set theFile to "$IMGPath" as POSIX file
    open folder theFolder
    set background picture of the icon view options of window 1 to theFile
    set background picture of the icon view options of window 1 to theFile
end tell
EOF


以上を、ここでは、/Volumes/Disk1/DL/test/kafun/kafunbg.shとして保存します。
また、以下のコマンドで実行権を付けます。

$ chmod a+w /Volumes/Disk1/DL/test/kafun/kafunbg.sh


3. crontabで自動実行をスケジュール

2.で作成したシェルスクリプトが実行されるのを確認します。
特に問題ないようでしたら、自動実行できるようにします。
最近はlaunchdで自動実行するのがいいようですが、ここではcrontabを使います。
growlnotifyをiCalのアラーム代わりに使ってみるの(3)も参考にしてください。

crontab -lで現在の設定を確認した後、以下のコマンドで、シェルスクリプトを追加してください。


$ crontab -e

デフォルトのエディタ(通常はvim)で、crontabの定義画面が起動します。

朝6時55分に実行する場合は、以下のようになります。

55 6 * * * /Volumes/Disk1/DL/test/kafun/kafunbg.sh

既に他の定義がしてある場合は、最後の行にでも追加するといいと思います。
そのうち、launchdでの説明も書きたいですが、ちょっと時間がかかりそうです。

2013年3月2日土曜日

フォルダの背景の花粉情報予測マップ画像表示の自動化 (Automator編)

前の記事で、フォルダの背景に花粉飛散状況(花粉マップ)画像の表示ができるようにしました。
これで、昼休みに散歩に出るとき、見逃さない可能性が高くなりますね。ちゃんと忘れなければですが。

でも、今のままでは、花粉マップのある日本気象協会のウェブに毎日アクセスして、花粉マップ画像をダウンロードし、フォルダの背景に貼り付ける作業を手で行う必要があります。
多分忘れることも多そうですし、面倒になってやらなくなりそうです。

ということで、自動化を考えてみます。ここでは、Automatorを使うことにしたいと思います。冗長なところもあるかもしれませんが、できるだけAutomatorのアクションだけで作ってみます。


準備として、花粉マップを表示する(=普段よく使う)フォルダを決めておきます。ここでは、testとしておきます。
また、花粉マップを毎日ダウンロードするフォルダを決めます。表示するフォルダと同じにしてもかまいませんが、ここではtestフォルダの下にtest/kafunとして作成します。
また、一度だけ、Safariなどで花粉マップ(pollen)をあらかじめダウンロードしておいてください。以下は参考画像です。


処理の考え方は以下のようになります。

Automatorで、(1) カレンダーアラームとしてワークフローを作成します。
ワークフローの中では、(2) 前回の花粉マップを削除し、(3) 新しい花粉マップをダウンロードして、(4) それをフォルダの背景として設定します。
最後に、(5) カレンダー上でそのワークフローを連続イベント設定します。(Mountain Lionではカレンダーと名前が変わっていますが、Snow LeopardではiCalという名前です。)

1. Automatorの立ちあげとカレンダーアラームの選択

カレンダーアラームは、カレンダーのイベントがきっかけとなって実行されます。毎日、決まった時間に処理を行うために、この書類の種類にします。また、Mac OS Xの以前のバージョンでは、iCalアラームになっています。


2. 花粉マップ画像の削除

Finderのアクションから、「指定されたFinder項目を取得」を右側のワークフロー作成領域(ペイン)にドラッグします。ダブルクリックしてもいいようです。

「追加...」ボタンを押して、上の準備のところであらかじめダウンロードした花粉マップを指定します。


Finderのアクションから、「Finder項目をゴミ箱に入れる」を選びます。


3. 花粉マップ画像のダウンロード

Safariのアクションから、「指定されたURLを取得」アクションを右側のペインにドラッグします。

アドレスは、apple.comになっていると思いますので、それを選択してから削除ボタンで削除します。
続いて、追加ボタンで日本気象協会の花粉画像ファイルのURL(http://season.tenki.jp/component/images/pollen_mesh_large.jpg)に変更します。

その際、Safari で、花粉マップの画像を開いておくと、自動的にそのURLが設定されます。

Safariのアクションから、「URLをダウンロード」アクションをドラッグします。

ダウンロードする場所は、上の準備で決めたフォルダ(ここではkafunフォルダ)に変更します。


4. 花粉マップをフォルダの背景へ貼り付け

Finderのアクションから、「指定されたFinder項目を取得」をドラッグします。このアクションは、2回目ですね。
パスは、フォルダの背景を設定したいフォルダを指定します。ここでは、testフォルダです。

Finderのアクションから、「Finder項目にフィルタを適用」アクションをドラッグします。そして、種類をフォルダに設定します。
その種類を限定する理由は、Finder項目として、ダウンロードした花粉マップ画像と上で選択した、背景を設定したいフォルダの両方が選ばれているためです。このままですと、後の処理でエラーが出る場合があります。Mac OS Xのバージョンによってはエラーが出ない場合もあります。

Finderのアクションから、「フォルダ表示を設定」アクションをドラッグします。

右側の背景の欄をピクチャに変更し、準備段階でダウンロードしておいた花粉マップ画像を設定します。

これで、フォルダの背景に画像が設定できているのですが、対象のフォルダを開いたままにしてAutomatorを実行した場合、フォルダの背景の変更がすぐに反映されません。フォルダを開き直したり、表示形式をカラムやリスト形式からアイコン形式に変更したら、背景画像が設定されているのが確認されます。

ここで、それと同じ効果をAutomatorで得るため、もう一度、「フォルダ表示を設定」アクションをドラッグします。

今回は、「常に次の項目で並び替える」を「変更日」に変更します。また、背景は、もう一度、花粉マップ画像を設定します。
このような設定は二度手間なので、本当は何かいい方法があるのかもしれませんがわかりませんでした。

やっとAutomatorの部分の最後になりました。ここでワークフローを保存します。
私は、名前を「花粉マップ」にしました。
動くかどうかをここで確認するのもいいと思います。右上の「実行ボタン」や「コマ送り」ボタンを押して実行と確認をしてください。


5. カレンダーでイベントを修正

カレンダーアプリを立ちあげると、Automatorというカレンダー項目と「花粉マップ」(または自分でつけたワークフロー名)イベントが登録されています。

この「花粉マップ」を選んで編集メニューから「情報を見る」を選びます。command + Iでも同様です。

登録した時間に1回だけ実行されるようスケジュールされています。
このイベントを毎日実行されるよう設定を変更していきます。
まず、開始時刻を適当な時間、例えば6時55分に変更します。朝、6時に日本気象協会の情報が更新されますのでそれより後で、Macを立ち上げている時間がいいと思います。

また、繰り返しを毎日に変更します。通知の時間が指定時刻ではなく、0分前になっていることも確認してください。
Snow Leopardの場合、指定時刻(将来の日時から見ると過去の時間)に固定されている場合があるので注意が必要です。

これで適用を押して情報ウインドウを閉じてみると、カレンダー表示が次のようになります。

これで終了でもいいのですが、毎日表示されているのが多いと感じた場合は、左上のAutomatorのチェックをオフにすることで、毎日の表示を隠すことができます。その場合も、花粉マップのダウンロードとフォルダの背景への設定更新はされます。

ずいぶん長くなりましたが、これで終わりです。画像の明るさや透明度を変えたり自分なりに工夫ができるかもしれません。試してみてください。

2013年2月27日水曜日

フォルダの背景にも花粉情報予測マップ画像を表示しました

花粉症対策になるかどうかわかりませんが、GeekToolで花粉情報予測マップ(地図)をデスクトップに表示しています。それに加えて、フォルダのバックグラウンドにも表示したいと思いました。
デスクトップは他のウインドウに隠されて見えない場合があるからです。私はFinderのダウンロードフォルダを常に開くようにしていますので、そこを使おうと思います。(このブログでは、ちょっとお仕事関係でまずいファイルもあるのでテスト用フォルダを使います)

まず、GUIでフォルダのバックグラウンドに画像を表示する方法を説明します。次のxステップです。
表示したい画像はあらかじめ対象のフォルダにコピーしておいてください。本当は画像ファイルの場所はどこでもいいんですが、同じフォルダに入れておく方が操作しやすいとおもいます。

1. 表示オプションの表示

画像をバックグラウンドに表示したいフォルダを開いて、アイコン以外の場所をマウスで右クリックして表示されるコンテキストメニューから「表示オプションを表示」選びます。フォルダはアイコン表示状態にしておいてください。
そのフォルダを開いた後、メニューバーの表示->表示オプションでもかまいません。command + Jキーでも同じです。

すると下の図のような表示オプションが表示されます。(日本語だと変ですね。英語はShow View Optionsでしょうか)


2. ピクチャ領域への画像のドラッグアンドドロップ

表示オプションウインドウの下の方の背景ペインをピクチャにします。その右側に「イメージをここにドラッグしてください」という説明のある領域が現れますので、そこに表示したい画像をドラッグアンドドロップします。

すると、そのフォルダの背景が指定した画像になります。わたしが試した限りでは、元の画像は消しても背景の画像は消えませんでした。

手順は、以上です。

画像を見てもらえるとわかりますが、ファイルアイコンの見栄え(というか視認性)がいまいちのような気もしますね。
画像ファイルの透明度を40%程度にして、さらに各アイコンのファイル名ラベルを灰色にしたら以下のようになりました。

この図には元の図の加工過程のファイルアイコンも入っているので、同系統の色になってしまっているのでいてまだ見にくいですが、ファイル名はわかりやすくなった気がします。
画像ファイルの透明度変更には、Seashoreを使いました。
ファイル名のラベルは、Finderのファイルメニューの一番下で変更できます。

一応、GUIで設定できることは確認できましたが、毎日実行する必要があります。