【コラム】

塩田紳二のアンドロイドなう

47 画面キャプチャー

47/135

アンドロイド関係の記事やブログを書くときに必要になるのが画面キャプチャー(アンドロイドでの呼び方はScreenshot)だ。かつては、SDKを入れないと画面キャプチャーはできなかったのだが、ICS(Ice Cream Sandwitch。android 4.0)以降は、ハードウェアボタンの組み合わせで画面キャプチャーが行えるようになった。ICS以前のアンドロイド機では、メーカーによってはスクリーンキャプチャ機能が使える場合がある。たとえば、ソニー系だとandroid 2.3系でも電源/ロックキーの長押しで表示される電源オフメニューに画面キャプチャの項目がある。メーカーがサポートしていない場合には、root権限を取得してキャプチャアプリを動作させないと実機上でのスクリーンキャプチャが行えない。

ICS以降の画面キャプチャ機能は、原則ハードウェアボタンを利用する。Nexus系では、電源/ロックキーとボリュームダウンキーを同時押しする。ただし、メーカーや機種によって違う場合がある。最終的には取説で確認するしかない。

つまり、画面キャプチャーには、大きく2つの方法があって、SDKをPCにインストールしてUSB接続で行う方法と、実機で行う方法の2つだ。

本体でキャプチャする方法

アンドロイド機が画面キャプチャー機能を持っている場合には、原則ハードウェアキーの組み合わせで画面キャプチャーが行える。Nexus系のデバイスは、電源/スリープキーとボリュームキーの下を同時に押すことでキャプチャーが行われる。これに倣う機種も多いが、ハードウェアキーをセンスする部分の造りで必ずしも同時押しを検出できないこともあり、他のキーの組み合わせになることもある。Nexusシリーズの同時押しもタイミングが微妙なところがあり、何回か練習して慣れる必要がある。

この方法は手軽なのだが、撮影できない、しにくい場面もある。たとえば、アイコンをドラッグしている最中の画面などだ。両手を使い、片手でアイコンをアイコンを移動させつつ、もう一方の手で電源/ロックキーとボリュームキーを同時押しするのはかなり曲芸的である。誰かに操作してもらうという方法はあるが。

キャプチャーされた画面は、原則、SDカードフォルダ(/sdcard)の下のPicture/Screenshotsに保存される。ファイルを転送する場合、USBを使うと、/sdcardフォルダが直接見えるような状態になるので、Picture/Screenshotsをアクセスすればよい。なお、このフォルダはギャラリーアプリでも表示が可能である。

数枚程度の転送で相手がBluetoothを使えるならオブジェクトプッシュ(OPP)で転送するのが簡単だ。Bluetoothが動作しているiOS以外のデバイスは原則OPPを持っている。画像を選択してギャラリーから共有メニューを使い共有先にBluetoothを指定すれば、転送先をスキャンしてリストに表示する。ここから転送先を指定すればOKだ。してデバイスを指定するだけだ。ギャラリーはファイルを長押しして選択状態にしたあとは、他の画像をタップすれば、複数選択が可能だ。

Sony系のアンドロイドデバイスでは、電源/ロックキーの長押しで表示されるメニューにスクリーンショットの項目がある

SDKを使う方法

無料で配布されているアンドロイドのSDKには、画面をキャプチャする機能が含まれている。これは、ツールのうちadb(android Debug Bridge)およびandroid Debug Monitor(ADM)を利用する。SDKのインストールという手間はあるものの、一度インストールしてしまえば、あとはSDKに含まれるSDK Managerで更新が可能なので、維持はそれほど面倒ではない。

SDKを使った撮影の前にアンドロイド機をUSBデバッグできるように設定しておく。「設定」→「開発者向けオプション」を使い、「USB デバッグ」をオンにする。「開発者向けオプション」が「設定」にない場合、「設定」→「タブレット情報」や「端末情報」にある「ビルド番号」を7回連続してタップすると表示されるようになる。

また、「スリープモードにしない」を選択しておき、充電状態(USB接続中は常に充電状態となる)ではスリープモードに入らないようにしておくといいだろう。というのは画面キャプチャを連続して行うような場合、スリープモードに入ってしまうと真っ黒の画面しかキャプチャーできなくなるからだ。

次にSDKをインストールしたPCと接続すると、アンドロイド側にPCを確認するダイアログが表示される。このとき、チェックボックスをオンにして「はい」を選択すると、次回から確認が行われないようになる。

SDKで画面キャプチャを行う場合、「設定」→「開発者オプション」にある「USBデバッグ」をオンにする。また、何枚もキャプチャするような場合、スリープしないように「スリープモードにしない」をオンにしておくといい

USBデバッグをオンにして、はじめてPCに接続すると、PC認証のダイアログが表示されるので、チェックボックスをオンにしてOKボタンを押す

次にPC側でアンドロイドSDKをインストールしたフォルダにあるtoolsのmonitor.batでADMを起動可能だ。これを起動すると、デバッグ接続中のデバイスがDeviceタブのリストに表示されるので、これを選択したあと、Deviceタブツールバーのカメラアイコンをクリックするとウィンドウが表示される。このウィンドウに表示される画像は、接続しているデバイスと同じ解像度になるためPCのモニターによっては画面からはみ出してしまうものの、Saveボタンで出力されるイメージは完全なものになる。

ここでRefreshとSaveボタンを使えば、画面が取り込まれ、これをpng形式で保存可能だ。ファイル名には、現在日時が入るようになっているため、そのままセーブしても上書きされることはない(過去のバージョンではファイル名を毎回指定する必要があった)。なお、Copyボタンでクリップボードにイメージがコピーされるので、これを他のアプリに直接貼り付けてもいい。

このSDKを使う方法の最大のメリットは、アンドロイド側の操作状態がどうであっても、ボタンを押すだけでキャプチャが可能な点だ。このため、画面をドラッグしてスクロールしている途中や、アイコンをドラッグしてオブジェクトに重ねた状態などでもキャプチャが比較的簡単に行える。

Android Debug Monitorは、左の「Device」タブにUSB接続しているデバイスのリストが表示され、これを選択して、タブ内のカメラアイコンをクリックすれば、デバイススクリーンキャプチャウィンドウが開く

Android Debug Monitorのデバイススクリーンキャプチャ機能。実機と同解像度のウィンドウが開くが、Saveボタンを使えば、イメージを正しく保存できる

なお、SDKとJavaがインストールされていてadbが起動しているなら、Android Screen Monitor(ASM)というJavaアプリを使っても画面キャプチャーを撮ることができる。このアプリを使うと、画面が切り替わると自動で表示も切り替わるため、ADMのようにRefreshボタンを押す必要がない。また、このアプリ自身にもイメージを保存する機能はあるが、PC側の画面キャプチャツールで取り込むことも可能だ。

特に最近の高解像度のアンドロイド機では、そのままの解像度だと画像ファイルが大きすぎることがあり、このASMで縮小表示したものをキャプチャすれば、あとから画面サイズを手直しする必要がなく便利だ。なお、大半のPC用画面キャプチャーアプリは、画面からはみ出した部分をキャプチャーできないので注意されたい。

Android Screen Monitorは縮小表示が可能で、これをPC用キャプチャツールで取り込めば、縮小する手間のいらないキャプチャ画像になる

■ Android Screen Monitor
http://www.adakoda.com/adakoda/android/asm/

画面キャプチャのTips

本体で行う画面キャプチャーもSDKを使うものも、キャプチャーできるのはアンドロイドがきちんと起動した間だけ。たとえば、ブートローダーの動作中は画面キャプチャは行えない。どうしても撮影したい場合には、液晶を直接デジタルカメラで撮影するしかない。このような場合には、周囲を暗くして画面だけが見える状態にする。というのは、液晶表面のガラスに映り込みがあるからだ。あとは、カメラと液晶面を並行に保つこと。コンパクトデジカメなら、手持ち撮影でもなんとかなるが、デジタル一眼クラスだと三脚を使うか、机に取り付けられるアームなどを使い固定するほうが安定する。また、カメラ用品として入手できる水平儀(透明なプラスティックの中に緑色の水と泡の入っているもの)を使い、カメラを水平に設定する。自動露出で撮影するとシャッタースピードが遅くなり、手ぶれで画像がぼけるので、マニュアルかシャッタースピード優先で撮影を行う。ISO値を高めにして撮影するが、露出計の表示で多少露光不足でも、ある程度は映るのであとからレタッチソフトの「レベル」で調整する方法もある。

本体キャプチャーの場合には、撮影後に通知領域にキャプチャを保存しているという通知が表示され、SDKを使う場合には、USBデバッグのアイコンが通知領域に表示されてしまう。画面キャプチャーの通知は、クリア可能だが、キャプチャごとにクリアせねばならずキャプチャー操作が面倒になる。また、USBデバッグのアイコンは、USBケーブルが接続されている間は消すことができない。

気にしないというのであればいいが、どうしても気になる場合には、レタッチソフトを使い、アイコンの右側の何もない領域をコピーしてアイコンの上に重ねておけば、消すことができる。同じアンドロイド機で何枚もキャプチャーを撮るのであれば、何もない領域をコピーしたら、クリップボードから新規に画像を生成してPNG形式で保存しておくと、毎回コピーしなくて済む。次回からは、これを開いて、画像全体をクリップボードにコピーし、キャプチャ画像に貼り付けてアイコンの上に重ねて置けばよい。

通知領域のアイコンを消すには、レタッチソフトでアイコンの隣の黒い部分を選択して貼り付け、アイコンの上へ移動させる

なお、詳しい使い方の説明は省くが、Image Magickというレタッチソフトは、コマンドのオプションで画像の重ね合わせが可能なので、自分でバッチファイルを作ることができるひとは、処理を自動化できる。

■ コマンド例

composite.exe -gravity NorthWest cover.png TARGETFILE SAVEFILE

cover.png   カバー用画像ファイル名(あらかじめ作っておく)
TARGETFILE  画面キャプチャー画像ファイル名
SAVEFILE    カバーと重ね合わせたキャプチャー画像の保存ファイル名

※composite.exeはImage Magickに含まれているコマンド。「-gravity NorthWest」は左上(北西)に位置合わせして重ね合わせを行うことを示すオプション
■ Image Magick
http://www.imagemagick.org/script/index.php

また、Nexusシリーズでは、画面キャプチャ画像と本体写真を合成して画像を作ってくれるサービスdevice-Art-Generatorをグーグルが運営している。これを使うとたとえば、Nexus 7の正面からの画像に指定した画面キャプチャーをはめ込んだ画像を簡単に作ることができる。記事のタイトル部分などに使うと印象が違って来る。なお、解像度さえ同じならはめ込む画像は、必ずしも画面キャプチャーでなくてもよい。

Device Art Generatorのページ上にあるデバイスのところにキャプチャしたPNG画像をドラッグ&ドロップで落とすと、外側にハードウェア写真を付けた画像を生成して下に表示するので、これをブラウザの機能でダウンロードすればよい

Device Art Generatorにより、生成された画像

■ Device Art Generator
http://developer.android.com/intl/ja/distribute/promote/device-art.html
本稿は、2013年10月15日にAndorid情報のWeb専門誌「AndroWire」に掲載した記事を再構成したものです。

47/135

インデックス

連載目次
第135回 「Android Wear 2.0」を探る その2
第134回 「Android Wear 2.0」を探る その1
第133回 「Android O」プレビュー
第132回 Androidのコードネームとビルド番号再び
第131回 Android Wear 2.0が出る前にちょっと復習
第130回 「Android 7.1」の新機能を見てみる その2
第129回 「Android 7.1」の新機能を見てみる その1
第128回 モトローラ「Moto Z」を試す その3
第127回 モトローラ「Moto Z」を試す その2
第126回 モトローラ「Moto Z」を試す
第125回 大陸でウワサのスマホ、ソフトウェア編
第124回 大陸でウワサのスマホ、デュアルSIM編
第123回 大陸でウワサのスマホを買ってみた
第122回 Androidでコルタナを使う
第121回 Android N、「通知」の表示形式が変更に
第120回 「Android N」の新プレビュー版、Developer Preview 4が登場
第119回 「Android N」プレビュー その3
第118回 「Android N」プレビュー その2、Nの改良点
第117回 「Android N」プレビュー その1
第116回 「ZenWatch 2」の充電動作を調べて見た
第115回 Android Wearのバッテリ関連機能を検証してみる
第114回 Android Wearを再評価してみる
第113回 Nexus 7をカーナビにしてみた(その3)
第112回 Nexus 7をカーナビにしてみた(その2)
第111回 Nexus 7をカーナビにしてみた(その1)
第110回 画面キャプチャに便利なシステムUI調整ツール
第109回 2016年の注目はタブレット
第108回 「Nexus 5X」と「USB Type-C」
第107回 「Nexus 5X」と「LTE」
第106回 Android 6.0 ストアとアプリ
第105回 Nexus 5XでみるAndroid 6.0 Marshmallow
第104回 「Nexus 5X」を買いました
第103回 「Android Mのプレビュー3」を試す(前編)
第102回 Android M プレビュー2 (準備編)
第101回 「LG G Watch」のその後
第100回 「Zenefone 2」買いました
第99回 ちいさくてかわいい「LG L20」、イギリスで買ってみました
第98回 「Google日本語入力」アップデートで何が変わった?
第97回 どのアプリで開く? 「インテント」の仕組み
第96回 「OneNote」をつかってみた
第95回 ロリポップのマテリアルデザインをまとめてみる
第94回 「Email Markup」って何?
第93回 Outlookは来たけれど
第92回 Office Previewつかってみた
第91回 Google INBOXを使ってみる
第90回 AndroidWareの文字盤を自作する
第89回 Android Ware Lollipop版
第88回 「Nexus Player」を試す - ソフトウェア編
第87回 「Nexus Player」を試す - ハードウェア編
第86回 「Nexus 9」ファーストインプレッション - ソフトウェア(Lollipop)編
第85回 「Nexus 9」ファーストインプレッション - ハードウェア編
第84回 充電しながらUSBデバイスが使えるホストケーブル
第83回 Android "L"プレビューとAndroidWareがアップデート
第82回 ちょっとイケてる「Kyocera Hydro Vibe」
第81回 Android "L" バッテリ消費を監視する
第80回 アクセスポイントの基本を知る
第79回 OneDriveとGoogleドライブ
第78回 シェルのネットワーク関連コマンド
第77回 "L"の中身
第76回 アンドロイドウェア(Android Wear)は暫定バージョン?
第75回 LGのスマートウォッチ「G Watch」
第74回 "L"がくる
第73回 次は「Lollipop」か? その前にKitKatが4.4.3に
第72回 VPNを使う その3 「VPNをアンドロイドから使う」
第71回 「Chromecast」とは?
第70回 VPNを使う その2 「VPNサーバーを立てる」
第69回 VPNを使う その1 「基礎編」
第68回 アンドロイドのストレージ
第67回 「NVIDA SHIELD」のソフトウェア
第66回 「NVIDA SHIELD」のハードウェア
第65回 HDMIとMHL、SlimPort - ディスプレイ接続端子を整理してみる
第64回 「LG L1 II」を買ってみた
第63回 アンドロイドに音楽を「聞かせる」
第62回 住所録の秘密
第61回 Outlook.comをカレンダーに表示する
第60回 ソースコードはどこにある?
第59回 AndroidのBluetoothテザリングとWindows 8.1
第58回 NFCでマニュアル参照を簡単に
第57回 あらためて「ポータブルアクセスポイント」をきちんと試してみる
第56回 「ビルド番号」ってなに?
第55回 画面キャプチャをバッチファイルで実行
第54回 adbコマンドをちょっと解説
第53回 「android 4.4 "Kit Kat"」で画面を録画する
第52回 「android 4.4 "Kit Kat"」の内部的な変更点
第51回 「android 4.4 "Kit Kat"」を解説
第50回 「Nexus 5」を買ってみた
第49回 Google Keepはリマインダーだった
第48回 android 4.2からサポートされた「ワイヤレスディスプレイ」
第47回 画面キャプチャー
第46回 ヘッドセットの秘密
第45回 Nexus 7のLTEモデル
第44回 Nexus 4買いました。アメリカで。
第43回 ブートローダーとfastboot
第42回 Jelly Beans 4.3 Returns
第41回 Chromecast、テレビに刺さる
第40回 デバイスマネージャでAndroidの位置を確認
第39回 新しいNexus 7を買ってみた
第38回 Jelly Beans 4.3
第37回 レノボ「K900」を国際版化
第36回 NFCで遊ぶ
第35回 自宅で簡単ファイル転送
第34回 レノボ「K900」のカスタマイズされたJelly Beansを見てみる
第33回 CloverTrail+のスマートフォン、レノボ「K900」を買ってみた
第32回 AndroidがBluetooth 4.0を正式サポート
第31回 ARMの次世代CPU「Cortex-A12」
第30回 SDKをインストールしよう
第29回 ウィジェットを活用
第28回 QRコードでお手軽設定
第27回 XPERIA Tipoとロンドンアンロック屋事情
第26回 diNovoキーボードを使う
第25回 キーボードをカスタマイズする
第24回 Androidキーボードのしくみ
第23回 2段階認証を使おう
第22回 いらないプリインストールアプリを削除
第21回 64bitなんて必要なのかしら?
第20回 アメリカでアンドロイドの読書端末を買ってみた
第19回 Android 4.2の新機能
第18回 Android Beamって何だ?
第17回 NFCで何ができる?
第16回 Nexus 7をアメリカで買ってみた
第15回 AndroidをPCにつなぐと
第14回 Androidの記憶領域
第13回 Google Nowを使ってみる
第12回 AndroidのUSBホスト機能
第11回 デュアルSIMを使ってみる
第10回 キーボード一体縦型Androidマシン
第9回 Androidの言語設定
第8回 アンドロイドに道を聞く
第7回 Google Playはどうやってアプリの公開を制御しているのか?
第6回 「Acer A100」がICSになった
第5回 つながっているのはACアダプタ、それともUSB端子
第4回 スマートフォンを普通の電話としてつかってみた
第3回 Androidからの通知を表示可能な腕時計
第2回 アームを誤解してませんか?
第1回 MWCで見たAndroid

もっと見る

人気記事

一覧

新着記事