見出し画像

画像に枠線を付けるプログラムをマックで作る

note の不満は画像に枠線を付けられないことです。CSS なら border: 1px solid っていう感じです。

マックなら、Homebrew、Xcode、ImageMagick、AppleScript でドロップレットが作成できます。
画像ファイルをアプリにドロップしたら自動的に枠線が付くプログラムです。

作成手順

Homebrew が未インストールの場合は参考サイトを見ながらインストールしてください。確認コマンドは以下です。

brew --version

既に Homebrew をインストールしている場合でも、古い状態になっていますので、Homebrew を最新バージョンに更新します。以下のコマンドを実行します。

brew update

インストール済みのパッケージも最新バージョンにアップグレードする場合は、以下のコマンドを実行します

brew upgrade

次に App Store で Xcode を最新にしてください。

Command Line Tools をインストールしたいので、以下のコマンドを実行します。

xcode-select --install

以下のメッセージが表示されたら、既にインストール済みです。

xcode-select: note: Command line tools are already installed.

以下のメッセージが表示されたら、Macのソフトウェアインストールの画面が表示されますので、インストールします。

xcode-select: note: install requested for command line developer tools

ImageMagick がインストールされているか確認します。

magick -version

ImageMagick のバージョンが表示されない場合はインストールします。

brew install imagemagick

もう一度、magick -version コマンドを打つとバージョン情報が表示されると思います。

結果

Version: ImageMagick 7.1.1-36 Q16-HDRI aarch64 22352 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(5.0)
Delegates (built-in): bzlib fontconfig freetype gslib heic jng jp2 jpeg jxl lcms lqr ltdl lzma openexr png ps raw tiff webp xml zlib zstd
Compiler: gcc (4.2)

マックのスクリプトエディタを起動します。

コードを貼り込みます。

スクリプトエディタ
on open droppedFiles
	repeat with aFile in droppedFiles
		set filePath to POSIX path of aFile
		-- Add a 1px gray border using ImageMagick
		do shell script "/opt/homebrew/bin/convert " & quoted form of filePath & " -bordercolor '#d3d3d3' -border 1x1 " & quoted form of filePath
	end repeat
end open

コードの中に ImageMagick のパスがあります(/opt/homebrew/bin/convert)
このパスは以下のコマンドで確認できますので、適宜修正してください。

which convert

ファイルを保存します。ファイル名は任意、ファイルフォーマットを「アプリケーション」にして保存します。

作成したアプリに画像ファイルをドロップします。複数ファイルをドロップできます。

ファイルを開くと薄いグレーの枠線が付いたと思います。

枠線の色と太さの変更は以下のコード部分を修正します。

-bordercolor '#d3d3d3' -border 1x1

下記の例だと、罫線が赤色で、太さは左右が1px、上下が5px です。

-bordercolor 'red' -border 1x5

もし、オリジナルファイルを残したい場合は以下のコードにしてください。
4行目がバックアップを作成するコードです。

on open droppedFiles
	repeat with aFile in droppedFiles
		set filePath to POSIX path of aFile
		do shell script "cp " & quoted form of filePath & " " & quoted form of (filePath & ".bak")
		-- Add a 1px gray border using ImageMagick
		do shell script "/opt/homebrew/bin/convert " & quoted form of filePath & " -bordercolor '#d3d3d3' -border 1x1 " & quoted form of filePath
	end repeat
end open

説明は以上です。

ImageMagick ではなく、AppleScript で完結する sips というプログラムを試しましたが、日本語ファイル名を扱えないようで断念しました。
ImageMagick で期待する結果になったので、これからの note 活動が楽になりそうです。

この記事が気に入ったらサポートをしてみませんか?