LoginSignup
0
0

More than 1 year has passed since last update.

Macでスクショをクリップボードとファイルの両方に保存する

Last updated at Posted at 2022-06-26

TL;DR

クリップボードにも、フォルダにもファイルとしてスクショが保存されるAutomatorのアプリケーションを作成した。ファイル名は20220626-162858.jpgのように時刻にする。

手順

Mac標準アプリのAutomatorを開く。

アプリケーション
image.png

シェルスクリプトを実行 でコードをコピペ。(スクショを保存するフォルダが/Users/$USER/scaptureの場合)

var="$(date "+%Y%m%d-%H%M%S").jpg"
screencapture -i -x -t jpg "/Users/$USER/sccapture/$var"
echo "$var"

もう一つシェルスクリプトを実行で以下。引数としてにすることに注意。

var=$1
echo $var
osascript << EOF
	tell application "Finder"
		set aRes to exists of POSIX file "/Users/$USER/sccapture/$var"
		if aRes
			set the clipboard to (read alias POSIX file "/Users/$USER/sccapture/$var" as TIFF picture)
		end if
	end tell
EOF

今回は、⌘+shift+コントロール+4と同じことをコマンドで実行している。
creencaptureコマンドのオプション
-i インタラクティブモード
-W 全画面モード
-m メインモニタの画面のみ撮影
-c クリップボードに保存
-x ミュート
-t ファイルフォーマットを指定。-t jpg でjpg指定

全画面でキャプチャしたいなら

var="/Users/$USER/sccapture/$(date "+%Y%m%d-%H%M%S").jpg"
screencapture -m -c -x -t jpg $var
echo "$var"

ウィンドウのみをキャプチャしたいなら

var="$(date "+%Y%m%d-%H%M%S").jpg"
screencapture -W -o -x -t jpg "/Users/$USER/sccapture/$var"
echo "$var"

cf) 色々いじりたい人 https://tcd-theme.com/2020/12/screen-shots-without-the-shadow.html

osascript以降はAppleScriptを実行。クリップボードにあるJPEG画像をファイルとして保存する。

image.png

アプリケーションを保存する。

あとは、dockに保存されたアプリケーションを入れておいてクリックするか、BetterTouchToolでショートカットを割り当てるなりして使う。

詰まっていたポイント

以前のコードでは、まずscreencapture -cでクリップボードに画像をコピーしておいてそれをフォルダに貼り付けるというようにしていた。
この順番では、アプリを呼び出してescしたときにいくつかのデータを期待されるタイプに変換できませんというアラートが出てしまっていた。

var="/Users/$USER/sccapture/$(date "+%Y%m%d-%H%M%S").jpg"
screencapture -m -c -x -t jpg $var
osascript << EOF
set jpg_data to the clipboard as JPEG picture
set the_file to open for access POSIX path of (POSIX file "$var") with write permission
write jpg_data to the_file
close access the_file
EOF

今回は、-cオプションをなくし、まずフォルダに保存させておいてから画像ファイルにアクセスしてそれをクリップボードにコピーする順番にした。そうするとスクショを撮らなかったときにアラートが出なくなった。

最後に

意外とクリップボードにもファイルとしても保存したいことが多かったので便利。消音なのも良い。
https://github.com/kentoak/screencapture

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0