MacでAndroidのスクリーンショットに撮影日時を埋め込む方法

※本ページにはプロモーション(広告)が含まれています。
MacでAndroidのスクリーンショットに撮影日時を埋め込む方法

Android端末のスクリーンショットに撮影日時を埋め込みたいけれどMacでどうやるのかわからず困っていませんか。

この記事を読むことでMacでadbを使って端末からスクリーンショットを取得しImageMagickや標準ツールで撮影日時を画像内に書き込む具体的手順と実践的な応用例が身につきます。

項目内容
すぐに使える手順adbでの取得から埋め込みまで実際に動くコマンドを解説します。
バッチ処理のコツ複数画像をまとめて処理するシェルスクリプトの書き方と注意点を紹介します。
トラブル対処タイムゾーンや権限エラーなど現場でよく遭遇する問題の確認方法を示します。

さあ手順に沿って一緒に進めれば短時間で撮影日時入りのスクリーンショットが量産できるようになりますので楽しみながら読み進めてください。

Android博士

怖がらなくて大丈夫です。最初はコマンドに慣れないかもしれませんが順を追ってやれば確実にできるようになりますので安心して進めてくださいね。

目次

Macでadbを使ってAndroidのスクリーンショットに撮影日時を画像内に埋め込む方法

Macでadbを使ってAndroidのスクリーンショットに撮影日時を画像内に埋め込む方法

Androidのスクリーンショットに撮影日時を画像内に直接埋め込みたいとき、MacからadbとImageMagickを組み合わせると素早く確実にできる方法がある。ここでは単発で1枚撮るワンライナーと、複数枚を連続で撮るスクリプトの両方を実践的に紹介する。事前に端末でUSBデバッグを有効にし、MacにadbとImageMagickを入れておくことが前提になる。

ワンライナーはちょっとした確認やスクショの受け渡しに便利で、連続撮影は検証やドキュメント作成で役に立つ。画像内の文字色や位置はImageMagickのオプションで調整できるので、用途に合わせて変えてほしい。

紹介するコマンドはmacOSのdate形式とImageMagickの呼び出し差を考慮している。もしmagickコマンドがない場合はconvertに置き換えて実行してほしい。

ワンライナーで1枚撮って画像に日時を注記するやり方

ワンライナーで1枚撮って画像に日時を注記するやり方

まずは最短のワンライナーで1枚撮り、ファイル名と画像内両方にタイムスタンプを入れる手順を紹介する。端末とMacがadbでつながっていて、ImageMagickが使える状態で実行するとすぐに結果が得られる。

adb exec-out screencap -p > screenshot.png && timestamp=$(date +"%Y-%m-%d_%H:%M:%S") && magick screenshot.png -gravity SouthEast -pointsize 24 -fill white -annotate +10+10 "$timestamp" screenshot_ts.png

MacのターミナルでAndroid端末のadb接続を確認する

手順
USBデバッグと接続確認

端末でUSBデバッグを有効にし、USBケーブルまたはネットワークadbで接続する。これができていないと先に進めない。

手順
adbでデバイス一覧を確認

Macのターミナルでadb devicesを実行して接続済みデバイスが表示されることを確認する。unauthorizedなら端末で許可を出す。

手順
接続が不安定なときの対処

接続が出ない場合はadb kill-serverしてadb start-serverを試すと改善することが多い。ケーブル交換も試してほしい。

adbで端末上のスクリーンショットを保存してMacに取り出すコマンド

手順
端末上でスクリーンショットを撮る

adb shell screencap -p /sdcard/screen.pngで端末内部にPNGを保存する。このコマンドはほとんどのAndroidで動作する。

手順
Macに取り出す

adb pull /sdcard/screen.png ./screen.pngでMacカレントフォルダに取り出す。任意の保存先パスに変更して使ってほしい。

手順
端末側のファイルを消す(任意)

adb shell rm /sdcard/screen.pngで端末上の一時ファイルを削除しておくと端末側が散らからない。

Macのターミナルでdateを使って日時を取得しImageMagickで画像に書き込むコマンド

手順
日時文字列を作る

Macのターミナルでtimestamp=$(date +”%Y-%m-%d_%H:%M:%S”)とすれば注記に使う日時を変数に入れられる。

手順
ImageMagickで注記する

magick input.png -gravity SouthEast -pointsize 24 -fill white -annotate +10+10 “$timestamp” output.pngで右下に日時を入れられる。convertでも同様に動作する。

複数枚を連続で撮ってファイル名と画像内にタイムスタンプを付けるやり方

複数枚を連続で撮ってファイル名と画像内にタイムスタンプを付けるやり方

連続で複数枚を撮り、ファイル名と画像内の両方にタイムスタンプを付けるときは簡単なシェルループを使うと便利だ。撮影間隔や枚数を変えれば手元で柔軟に撮影できるので、検証や手順書作成に向いている。

mkdir -p android_shots && for i in 1 2 3 4 5; do adb exec-out screencap -p > android_shots/raw_$i.png && ts=$(date +"%Y-%m-%d_%H:%M:%S") && magick android_shots/raw_$i.png -gravity SouthEast -pointsize 24 -fill white -annotate +10+10 "$ts" android_shots/shot_$i.png; sleep 1; done

保存先フォルダの作成とシェルスクリプトでループ撮影を実行する場所とコマンド

手順
保存先フォルダを作る

mkdir -p ~/Pictures/android_shotsで撮影ファイルの置き場所を作る。フォルダを分けると整理が楽になる。

手順
スクリプトを置く場所と実行

作成したシェルスクリプトを~/binやプロジェクトフォルダに置き、chmod +xで実行権を付けてから./script.shで実行する。

手順
実行時の権限と環境

ImageMagickやadbがPATHにあることを確認する。必要ならフルパスで呼び出すと確実に動く。

撮影後にまとめてImageMagickで日時を注記して整理するコマンド

手順
撮影後にまとめて日時注記する例

for f in *.png; do ts=$(date -r “$f” +”%Y-%m-%d_%H:%M:%S”); magick “$f” -gravity SouthEast -pointsize 24 -fill white -annotate +10+10 “$ts” “ts_$f”; doneで一括処理できる。

手順
ファイル名にタイムスタンプを付ける例

for f in *.png; do mv “$f” “$(date -r “$f” +”%Y%m%d_%H%M%S”)_$f”; doneでファイル名をタイムスタンプ付きに整理できる。

MacでAndroidスクリーンショットに日時と端末情報を一緒に埋め込むやり方

MacでAndroidスクリーンショットに日時と端末情報を一緒に埋め込むやり方

Androidのスクリーンショットに撮影日時と端末情報を埋め込むと、後から見返したときに迷わずに済みます。Macでadbを使って端末から画像を取得し、ImageMagickで画像下部に日時や端末名を合成する流れが手早くて扱いやすいです。

  • 1枚ずつ追記して保存するパターン:スクショごとに上書きせずに日時を焼き込む方法です。
  • まとめてPDF化するパターン:撮った画像を命名順に並べてPDFにして報告書にする方法です。
Android博士

焦らず順を追えば必ずできるので安心してください。コマンドの意味をひとつずつ確認しながら進めると理解が早くなりますよ。

画面下に日時と端末名を追記して1枚ずつ保存するパターン

画面下に日時と端末名を追記して1枚ずつ保存するパターン

スクショを1枚ずつ加工するパターンは、撮った直後に日時と端末名を画像下部に入れて保存する方法です。adbで画像をpullし、ImageMagickのannotateやcaption機能でテキストを重ねると見た目がすっきりします。

現場での証跡作成やデバッグログ付きのスクショ作成に向いていて、必要な画像だけを選んで加工できます。後から個別に修正したいときにも柔軟に対応できます。

Android博士

最初は少し手順が多く感じますが一度セットアップすればサクサク作業できます。少しずつ慣れていきましょう。

adbで端末名と画面解像度を取得するコマンドをターミナルで実行する方法

手順
端末接続を確認する

ターミナルでadb devicesを実行して接続済みの端末が見えるか確認します。

手順
端末名を取得する

adb shell getprop ro.product.modelを実行すると端末名が表示されます。

手順
画面解像度を取得する

adb shell wm sizeを実行すると解像度が表示されるのでピクセル情報を使います。

ImageMagickで複数行のメタ情報を画面下に合成するコマンド例

項目内容
基本コマンド例convert input.png -gravity south -background ‘#0008’ -splice 0x60 -annotate +0+8 ‘2025-01-01 12:34:56 DeviceModel 1080×2340’ output.png
何をしているか画像下部に半透明の領域を作りテキストを中央揃えで描画しています。行を増やす場合はcaptionや複数annotateを使います。
実務的ポイントフォント指定やテキストの折り返しを先に確認すると見栄えが安定します。日本語を使う場合はフォントパスを明示してください。

撮ったスクリーンショットをまとめてPDFにして報告書にするパターン

撮ったスクリーンショットをまとめてPDFにして報告書にするパターン

撮ったスクリーンショットをまとめてPDFにすると報告書作成が速くなります。命名規則でタイムスタンプや連番を付けておくと並び替えの手間が省けます。

macOSではImageMagickのconvertやPythonのimg2pdfなどを使って簡単にPDF化できます。見開きや余白調整が必要ならconvertのオプションで調整すると見栄えが良くなります。

Android博士

複数の画像を1つのPDFにまとめると共有が楽になります。ファイル名ルールをちょっと整えるだけで作業効率がぐっと上がりますよ。

画像を命名順に並べてmacOSのコマンドでPDFに結合する操作場所と手順

手順
作業フォルダに移動する

ターミナルで対象画像があるディレクトリにcdで移動します。

手順
命名順で確認する

ls -1vで命名順に並ぶことを確認します。

手順
PDFに結合する

convertを使う場合はconvert $(ls -1v *.png)report.pdfのように命名順で結合します。

ショートカットやシェルで定期実行して自動でPDFを作る簡単な自動化の流れ

  • ショートカットを作る:macOSのショートカットアプリで画像取得からPDF化までのワークフローを作成します。
  • シェルスクリプトを用意する:adbで取得→ImageMagickで焼き込み→convertでPDF化という流れをスクリプトにします。
  • 定期実行はlaunchdで:定期的に実行するならlaunchdにplistを置いてスクリプトを呼び出します。

よくある質問

よくある質問
adbがMacに入っていませんどうすればいいですか

Homebrewを使うと手早く入ります。ターミナルでbrew install android-platform-toolsを実行すればadbが使えるようになります。特別な環境変数の設定は不要なことが多いです。

端末がadbで認識されません

Androidの設定でUSBデバッグをオンにして、信頼できるケーブルを使ってください。adb devicesで一覧が出ない場合は端末側の認証ダイアログを承認してください。

スクリーンショットに日時を埋め込めません

adb exec-out screencapで画像を取り出し、Mac側でImageMagickのannotate機能を使う方法が安定しています。端末上で直接描画するとフォントや位置が崩れることがあるため注意してください。

日時のフォーマットやタイムゾーンを変えたいです

Macのdateコマンドで好みのフォーマット文字列を作り、それをImageMagickに渡すと自由に調整できます。タイムゾーンはTZを指定するか端末時刻を基準にしてください。

複数ファイルを一括で処理したいです

シェルスクリプトでループ処理し、ファイルごとに日時文字列を生成してImageMagickを呼ぶと自動化できます。cronやlaunchdで定期実行を設定するとさらに楽になります。

まとめ

まとめ

ここまでお疲れさまです。Macでadbを使ってAndroidのスクリーンショットに撮影日時を埋め込む方法は端末時刻を取得して画像に焼き付けるという考え方が基本です。撮影はadb経由で行いファイルをMacに取り込んでImageMagickで日時を描画する流れが一番確実です。

実務で迷いがちなポイントは3つあります。端末のUSBデバッグとadb認証を済ませること、時刻は端末のdateコマンドから取得して埋め込むこと、フォントはbrewでインストールしてパスを指定すると環境差が出にくいことです。

よくある落とし穴はフォント未導入やadb接続の切断や端末のタイムゾーン違いです。小さなシェルスクリプトにまとめてファイル名にYYYYMMDD_HHMMSSを付けると証跡管理やバッチ処理が楽になり運用負荷が下がります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次