第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

2025年12月06日 更新
  1. 飲食店でのスマホ注文に物議、LINEの連携必須に批判も 「客のリソースにただ乗りしないでほしい」 (2025年12月04日)
  2. NHK受信料の“督促強化”に不満や疑問の声 「訪問時のマナーは担当者に指導」と広報 (2025年12月05日)
  3. 「スマホ新法」施行前にKDDIが“重要案内” 「Webブラウザ」と「検索」選択の具体手順を公開 (2025年12月04日)
  4. 三つ折りスマホ「Galaxy Z TriFold」の実機を触ってみた 開けば10型タブレット、価格は約38万円 (2025年12月04日)
  5. 「楽天ポイント」と「楽天キャッシュ」は何が違う? 使い分けのポイントを解説 (2025年12月03日)
  6. 楽天ペイと楽天ポイントのキャンペーンまとめ【12月3日最新版】 1万〜3万ポイント還元のお得な施策あり (2025年12月03日)
  7. 楽天の2年間データ使い放題「バラマキ端末」を入手――楽天モバイル、年内1000万契約達成は確実か (2025年11月30日)
  8. ドコモが「dアカウント」のパスワードレス認証を「パスキー」に統一 2026年5月めどに (2025年12月05日)
  9. NHK ONE、簡単には「閉じられないメッセージ」表示へ 目的は“NHK受信料”の徴収 なぜ強引な仕様に? (2025年11月12日)
  10. 鉛筆デザインのiPad用スタイラスペン「Nelna Pencil」発売 物理ボタンに9機能を設定可能 (2025年12月03日)
最新トピックスPR

過去記事カレンダー