Windows環境でスクリーンショットを取得し画像を貼り付ける場合。
貼り付ける対象の色が、貼り付け画像と同様で画像縁を枠線で強調した方が見やすい場合もあるかと思います。
下記は画像の縁に赤く枠線をつけたケース。
本記事ではImageMagick
を使い、クリップボードにスクショされた画像に対して枠線を追加してみます。
そもそも切り取り & スケッチ でできるけど
2022年11月現在、Windows 10
と Windos 11
で提供されている公式アプリ 切り取り & スケッチ
。
こちらのアプリの設定で、切り取り領域のアウトライン
設定を有効にすると。
本記事でやっている事はこの機能を使うと実現できたりします。
今回は普段使っているFlameshot
で該当の機能がなかっため。
Flameshot
でクリップボードに取得した画像に枠線をつける目的でやっています。
今回対象とする環境
- Windows 10 21H2
- ImageMagick 7.1.0-52
ドキュメント
ImageMagick
ImageMagick Examples --
Cutting and Bordering Frame, adding a 3D-like border
ImageMagickとは
ImageMagick
とは様々なOS向けに提供されている、画像加工ソフトです。
コマンドラインからイメージを加工、変換できます。
ImageMagickで枠線をつける
下記を実行するとクリップボードに格納されている画像に赤色で枠線をつけてくれます。
ImageMagick
は適宜インストールしておいてください。
if ( [System.Windows.Forms.Clipboard]::ContainsImage() ){
magick clipboard: -mattecolor "red" -frame "10x10" clipboard:
}
ImageMagick
で枠線をつける方法については、ImageMagick Examples -- Cutting and BorderingのFrame, adding a 3D-like border項に記載があります。
必要最小限としては、magick clipboard: -mattecolor "red" -frame "10x10" clipboard:
の部分だけあればよいのですが。
クリップボードに画像以外が格納されている場合を考慮して、Clipboard
クラスのContainsImage
メソッドで画像が含まれているか確認してから、ImageMagick
を呼ぶようにしています。
総評
大量の画像に一括で枠線をつけたい場合には、画像保存して一括で変換した方が楽な気がしますが。
切り取り & スケッチ
アプリ以外で取得したスクショ数枚に対してといった場合は、このような方法もありかと思います。