今回は、MacのFinderで画像を右クリックして表示されるメニューに「Google画像検索」(似た画像検索)を追加する方法を紹介します。
使うのはAutomatorです!
ではやり方を紹介します。
やり方
Step1. Automatorを開いてください。
Step2. 開いたら「クイックアクション」(Mojave以外だとサービス)を選択してください。
Step3. 画面上部にある「ワークフローが受け取る現在の項目」を「イメージファイル」にして、検索対象を「Finder.app」としてください。
Step4. ライブラリからフローに「シェルスクリプトを実行」を配置してください。
Step5. ライブラリからフローに「Webページを表示」を配置してください。
Step6. 「シェルスクリプトを実行」に表示されている「シェル」を「/usr/bin/perl」に、「入力の引き渡し方法」を「引数として」にしてください。
Step7. 「シェルスクリプトを実行」のコード部分に次のコードをコピー・アンド・ペーストしてください。
foreach (@ARGV) {
use strict;
use LWP::UserAgent;
use HTTP::Request::Common;
use warnings;
# POST準備
my $url = 'http://images.google.com/searchbyimage/upload';
my $fn = $_;
my $request = POST( $url,
'Content_Type' => 'multipart/form-data',
'Content' => ['encoded_image' => [$fn]] );
# 送信
my $ua = LWP::UserAgent -> new;
my $res = $ua -> request( $request ) -> as_string;
my @lists = split("<A HREF=\"", $res);
my @list1 = split("\">here</A>", $lists[1]);
print $list1[0];
}
Step8. クイックアクションを保存してください。これでFinderで画像を右クリックしたらクイックアクションが表示されるようになったと思います。
コメント
試してみたのですが、”@lists”と”$list1″に厳密なパッケージ名を要求されました
初心者のため、どのようにして良いのかわからないので、
宜しければアドバイスをお願いします。
ーーー
アクション“シェルスクリプトを実行”でエラーが起きました:
“Global symbol “@lists” requires explicit package name at -e line 17.
Global symbol “@list1” requires explicit package name at -e line 18.
Execution of -e aborted due to compilation errors.”
申し訳ありません。
ソースコードの表示に一部誤りがありました。
現在は修正いたしましたので、もう一度お試しいただけますと幸いです。
ソースコードの更新ありがとうございました。
正常に動作することを確認いたしました。