今日のハウツーでは、コマンドライン画像操作ツールImageMagickをインストールする方法と、シェルスクリプトを使用してAutomatorシステムサービスを構築する方法を紹介します。 サービスは任意の数の写真を撮り、それらすべてを含む1枚の長い写真を作成します。 それはまるで、テーブルなしで、コンピューターを使って、テーブルの上に一列に並べたかのようです。
驚くべきことに、それはすべて非常に簡単です。
それを言うのはおかしなことに思えるかもしれませんが、2013年でも、コマンドラインはコンピューターで一連のタスクを実行するのに最適な場所です。 さらにクレイジーなのは、これらのタスクの一部に写真が含まれることです。 納得できませんか? それでは話をさせてください。
Macの写真で行う最も一般的なことの1つは、iPhoneまたはiPadからいくつかのスクリーンショットを撮り、それらを1つの写真に結合することです。 Cult of Macの投稿では風景画像を使用しており、iPhoneのスクリーンショットはほとんどの場合縦向きであるため、3つを並べて配置するのが理にかなっています。
問題は、これが煩わしい忙しい仕事であるということです。 私は通常、Acornで1つの画像を開き、他の画像を上にドラッグします(Acornはそれらをレイヤーとして追加します)。 次に、⌥⌘-cを押してキャンバスサイズを変更します(ヒント:ダイアログボックスの既存のピクセル数の後に* 3を追加すると、 幅を3倍にします)、⌘-0を押してビューを右サイズにし、3つのスクリーンショットを手動でドラッグして並べます。 それから私はウェブのために保存します。
それはお尻の本当の痛みです。
それで私はついにそれについて何かをすることに決めました。 私はImageMagickについて知っていました。これは、想像できるほとんどすべての方法で画像を操作できるコマンドラインツールです。 また、私は常にAutomatorを使用してシステムサービスを作成しています。システムサービスは、本質的にはファイル、フォルダー、テキストを処理するFinder(または他のアプリ)プラグインです。
これらを組み合わせて、Finderでいくつかの画像を選択し、それらを右クリックして1つの画像に連結できるワークフローを作成できるはずだと考えました。 ボーナス:Cult of MacにはJPGが必要なため、入力形式(通常はiOSスクリーンショットの場合はPNG)に関係なく、プラグインにJPGを出力させます。
さあ行こう。
ImageMagickのインストール
MacPortsと自作
まず、ImageMagickをインストールする必要があります。 これを行うには多くの方法があります。自分でビルドしてインストールするか、次のようなものを使用できます。 自作 また MacPorts あなたのためにそれをするために。 Mountain Lion、Lion、Snow Leopard用の非常にシンプルなパッケージインストーラーがあるので、MacPortsを使用しました。 注意点の1つは、Xcodeとそのコマンドラインツールをインストールして使用する必要があることですが、Homebrewを使用するには、ターミナルに1行のコードを貼り付けて実行する必要があります。
両方の手順は上記のリンクにあります。
ImageMagick
これで、ImageMagickをインストールできます。 MacPortsを使用して、次のように入力します。
sudoポートインストールImageMagick
そして、Homebrewを使用してImageMagickをインストールするには、次のように入力します。
brew install ImageMagick
Automator
次に、Automatorワークフローを構築する必要があります。 アプリを開き、「このウィンドウからサービス」を選択します(起動時にポップアップ表示されます。 そうでない場合、またはすでにAutomatorをいじっている場合は、⌘-Nを押して新しいファイルを表示します)。
次に、ワークフローにいくつかの手順を追加します。 「シェルスクリプトの実行」アクションが必要です。 最も簡単な方法は、左側の列でそれを検索し、右側の大きなキャンバスにドラッグすることです。
次に、コマンドを追加します。 注:Automatorがこのワークフローの最初に「GetSelected Finder Items」を追加したい場合は、それを許可します。 Automator内でワークフローをテストする場合は、自分で追加する必要があります。 ワークフローを保存するときに必ず削除してください。そうしないと、2回実行され、奇妙な結果が得られます。
まず、[入力を渡す]オプションの横にあるドロップダウンを[引数として]に変更します。 これにより、ファイルがファイルとして渡されます(とにかく、私はコーダーではないと思います)。 次に、実際のコマンドを貼り付ける必要があります。
ImageMagickコマンドの形式は次のとおりです。
$>変換+追加a.pngb.png c.jpg
「変換」部分は、私たちが使用しているコマンドです。 「+ append」はImageMagickに画像を並べて配置させ(画像を削除して垂直にスタックします)、「a.png b.png c.jpg」は、やや紛らわしいことに、2つのソースファイルと1つの出力ファイルです。
Automatorがすでにコードのチャンクで編集ボックスに追加されていることがわかります。 「do」と書かれた行の後にこれを貼り付ける必要があります。
/ opt / local / bin / convert "$ @" + append〜 / Desktop / shot.jpg
または、編集ボックスで[すべて]を選択して、全体を貼り付けることもできます。
「$ @」のfの場合 / opt / local / bin / convert "$ @" + append〜 / Desktop /shot.jpgを実行します。 エコー "$ f" 終わり
ここに「convert」コマンドへのフルパスが含まれていることに注意してください。 インストールに応じて(HomebrewとMacPortsのどちらを使用したか)、これは別の場所にある可能性があります。 このバージョンはMacPortsのインストールで動作します。 また、結果のファイルのパス(デスクトップ)とファイルの名前(shot.jpg)をハードコーディングしました。 変更したいのはファイルの名前だけです。 スクリプトで入力ファイルの1つの名前を取得し、それを結果のJPGのルートとして使用する方法がわかりません。 どんな助けでも大歓迎です(電子メールまたはTwitter経由が最適です)。
これで、Finderでいくつかの画像を選択し、ワークフローを実行することでテストできます(Automatorツールバーの大きな「実行」ボタンを使用します)。 注:これをAutomator自体の内部で機能させるには、最初に「選択したFinderアイテムを取得する」ステップを追加する必要があります。
動作する場合は、先に進んで保存してください。 適切な名前を付けます(2つだけでなく、任意の数の画像を処理しますが、私は自分のTwo Upと呼びました)。 画像ファイルを右クリックすると、Finderにオプションとして表示されるはずです。
私が自分の労働の結果をCultof Macチャットルームに貼り付けるとすぐに、誰もが泣き言を言って端の空白やその他の厄介な小さな要求を求め始めました。 ただし、必要に応じて、ImageMagickを使用してこれらすべてを実行できます。
気に入らなかったのですが、iPhoneから写真をインポートするときに、写真を自動的に並べて表示できるのはすばらしいアイデアだと思いました。 それを行うためにImageCaptureプラグインを作成しました。
Image Captureは、iDeviceから写真をコピーおよび削除したり、スキャナーから写真をインポートしたりできる、優れた組み込みのMacアプリです。 また、インポート時に特定のルールとプラグインを適用するように指示できます。
プラグインを作成するには、Automatorで新しいファイルを作成するだけですが、今回はドキュメントタイプとしてImage CapturePluginを選択します。 次に、最初のプロジェクトからこのプロジェクトにワークフローステップをコピーして貼り付けます。 保存して名前を付ければ完了です。
これで、MacにiDeviceを接続してImage Captureを開くと、デバイス上でいくつかの写真を選択して、このワークフローに送信できます。 ファイルは、実際のファイルをインポートしたり、iPhoneから削除したりせずに、デスクトップに保存されます。
明らかに、オプションはほぼ無限です。 ImageMagickのコマンドライブラリを見て、それがどれほど強力かを確認してください。 そしてそれは、あらゆる種類のトリガーに基づいてシェルスクリプトを自動的に実行できるHazelのようなものが関与する前です。