第4回 カメラ機能を使ってカードを作ろう90Xi専用ゲームiアプリ開発講座(2/2 ページ)

» 2004年11月09日 13時15分 公開
[澤橋辰典・武上将樹,ITmedia]
前のページへ 1|2       

画像を解析をしてカードにパラメーターを付加する

 画像の解析といっても、撮影した画像をすべて処理していたのでは時間がかかる。そこで、写真の中の1ピクセルを取得して、カードに個別の情報を持たせるためのパラメータを決定する。

 まずはrepaintで描画を行い、Graphics.getRGBPixel(int x, int y)で現在描画されている画面の任意の点のピクセルのRGB値を取得する。

int rgb = _canvas.getGraphics().getRGBPixel(120, 120);

 取得したRGB値は、0xRRGGBBの形式の整数値である。以下は、RとGとBを乗算して、その値から1〜9の値を導いている例である。

int r = (rgb >> 4) & 0xFF;
int g = (rgb >> 2) & 0xFF;
int b =  rgb    & 0xFF;
new_cp = r*g*b % 9 + 1;

 ほかにも、特定の色に反応する処理をしたい場合は、RGBのそれぞれの比を算出し、Bが強ければ青、RとGが強いが、Bが弱ければ黄色のように判定する方法が考えられる。

 解析が済んでパラメータが決定したら、カメラで撮影した画像をゲームで使用するカードの大きさに切り抜いて保存する。以下は、Graphics.getPixelsで画面中央から50×30のピクセルを取得し、そのピクセル配列を元に、カード用の画像を作成する方法である。

int[] pixs = _canvas.getGraphics().getPixels(
(Display.getWidth()-50)/2,
(Display.getHeight()-30)/2,
50, 30, null, 0); 
img[picture_count+9] = Image.createImage(50, 30, pixs, 0);
card_pow[picture_count] = new_cp;
picture_count++;

エミュレータや実機での動作確認をしよう

 今回のソースはここからダウンロードできる。実際にコンパイルして実行し、カード生成モードへ遷移してみる。

  • タイトルからソフトキー2(右)→デッキメニューから遷移

 エミュレータで写真撮影(Camera.takePicture())を行うと、ファイル参照のウィンドウが表示されるので、176×144の画像を選択する。この画像を撮影された画像として動作確認を行える。

 今回のプロジェクトフォルダにcamフォルダを追加した。中には、green.jpgとpink.jpgが入っている。エミュレータでそれぞれの画像を選択すると、カードのパラメータは6と2になる。ソースを実際の端末にダウンロードして動作させると、写真撮影時にカメラが起動され、撮影した画像によりパラメータが変化する。

次回はスクラッチパッドを使って記憶領域にデータを保管する

 次回は、スクラッチパッド(ローカルの保存領域)を利用して、撮影データを保存、読込する処理と、画像をネットワークからダウンロードして保存、読込する処理を解説する。

筆者紹介──澤橋辰典・武上将樹

 ケータイアプリ(iアプリ/EZアプリ/Vアプリ)のNo1ポータルサイト「アプリ★ゲット」を運営するスパイシーソフトに勤務。

 澤橋は学生時代、iアプリのコンテストでゲームアプリやツールアプリを制作し、入賞経験がある。また、所属していたサークルの後輩に、ものづくりの楽しさやアプリの奥義を授け、その後輩も入賞していることから、自らをiアプリエヴァンジェリスト(伝道者)と呼んでいる。現在も大手企業にOEM提供しているアプリの開発を行っている。

 武上は、イーアクセスとの共同事業「どこでも読メール」や、各社にOEM提供しているアプリメールサービスなどで、主にサーバサイドやデータベースまわりの開発を担当している。ゲームアプリは、もっぱらプレイ専門。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2024年05月06日 更新
  1. 楽天ペイと楽天ポイントのキャンペーンまとめ【5月4日最新版】 1万ポイント還元や最大20%還元などの施策が充実 (2024年05月04日)
  2. 4万円台からの「Nothing Phone (2a)」は誰向けか Phone (2)との比較で分かったこと (2024年05月05日)
  3. 皆さんは「スマホにガラスコーティング」してますか? 私はしていません (2024年05月04日)
  4. ダイソーで110円の「ガラスコーティング液」は本当に使える? 試してみた結果 (2024年04月29日)
  5. 楽天モバイルがeSIMの不正乗っ取りについて注意喚起――安心安全に使えるeSIM環境を業界を挙げて取り組むべき (2024年05月05日)
  6. au PAYとPontaのキャンペーンまとめ【5月3日最新版】 最大20%や35%の還元施策あり (2024年05月03日)
  7. 最新デジアナ文具でスケジュールも手書きしてアップ!? サラサラ書き心地の良いゲルインキタイプも登場──NeoLAB「Neo smartpen A1」 (2024年05月04日)
  8. ガストやバーミヤンの「テーブル決済サービス」、楽天ペイも利用可能に レジへ行かずに卓上会計 (2024年05月05日)
  9. LINEの気になるトークや写真などを「Keep」する機能、8月28日で終了 同社がバックアップを呼びかけ (2024年05月04日)
  10. ドコモ販売ランキング:「Pixel 7a」人気がじわり再燃、「Galaxy S24」は10位に後退  (2024年05月04日)
最新トピックスPR

過去記事カレンダー

2024年