AI2でカメラ画像の取得

 12th September 2022 at 10:13pm

App Inventor 2において、カメラ画像やローカルに保存された画像を扱う方法を、以下のような処理を行うプログラムを作りながら習得します。

「カメラ起動ボタンもしくは画像選択ボタンをクリック」

「画像の取込み」

「画像保存ボタンをクリック」

「画像保存」

表示だけであれば、 Imageコンポーネントを使います。しかし、Imageコンポーネントは画像の編集や保存はできませんので、Canvasコンポーネントを今回は使います。

デザイナーでの作業

App Inventor 2において、カメラ画像やローカルに保存された画像を扱う方法を、以下のような処理を行うプログラムを作りながら習得します。

「カメラ起動ボタンもしくは画像選択ボタンをクリック」


画像1

Width と Heigh の部分には、Layout の TableArrangement を使っています。2行2列の設定にしています。


画像2

ちなみに、TextBox などにある Hint というのは、TextBoxに何も入力されていない時に、ここで設定した文字列が薄い色で表示されます。何を入力したら良いかのヒントを表示するようにします。


画像3

コンポーネントが増えてきたら、画像1の Components画面のように分かりやすい名前にしておくと、ブロック エディターでの作業が楽になります。

Width と Height は Canvas のサイズを指定します。保存される画像のサイズに関係します。

ブロック エディターでの作業

ブロック エディターで以下のように、コンポーネントを配置します。


画像4

これだけです。以下は実際にスマホで実行した際の画面です。


画像5

一番下の TextBox に保存先が出力されるようになっています。
ちなみに、私の環境ではSDカードの /My Documents/Picturesディレクトリに保存されました。
(/storage/emulated/0/My Documents/Pictures)

保存先を出力しなくても良い場合は、Built-In の Control の 「evaluate but ignore result」を利用します。


画像6

保存された画像サイズは、Width と Height で指定した数の2倍の大きさになっていました。

サンプルプログラム

こちらにプロジェクトやapkファイルをおいておきます。参考にしてください。

ひとこと

「Camera1.TakePicture」すると、実は撮像画像がファイルに保存されます。

ファイル名は、「When Camera1.AfterPicture」における「get image」がそうです。実は、「get image」で得られるのは画像データではなく、撮像した画像を保存するファイル名だったのです。

すると、上のアプリも画像サイズ変換アプリのようにも見えてきます。


HomeへApp Inventorの記事Topへ