インターンで色々やったことちょっとずつ紹介するのコーナー!!
超超時間かかると思いますが、暇な人は覗いてってくださいw
さて、私の作ったものは、こんなものです。
1.写真を撮る。
2.輪郭を取る。その輪郭が迷路のステージになる。
3.ボールとゴールを置く。
4.ユーザはカメラを傾けながらボールを操作する。
が、主な要素。今日は1番のところをメモとして残します。
丁寧な解説はしません。主要な部分だけさくっと書くだけです。
キャプチャの流れとしては次のとおりです。
1.画面をタッチしたら写真を取る
2.写真を撮ったら、バイト列をbitmap型に変換する
てな感じです。
ではさっそく(汚い)コードを見てみましょう。ちなみに、Android SDK のバージョンは2.2です。
全体像は見せたくありません。ベタ書きもいいところで、とてもとても見せられたものではありません。
ちなみに、こんなクラスの中で定義してます。
さて、まずは1番。画面タッチイのベントハンドラメソッドをオーバーライドします。
startPreviewしようとしたらなぜかエラーが止まらない。ということでコメントアウトして使ってます。特に問題はないので。
はい、次は2番。キャプチャのイベントハンドラメソッドをオーバーライドします。
SDカードに入れてるのは、特に意味は無いですw
処理時間を短くしたかったので、変換の際に画素数を落としています。縦横共に1/4になります。
以上~w
次は画像処理まわりですねw いつになることやらw
超超時間かかると思いますが、暇な人は覗いてってくださいw
さて、私の作ったものは、こんなものです。
1.写真を撮る。
2.輪郭を取る。その輪郭が迷路のステージになる。
3.ボールとゴールを置く。
4.ユーザはカメラを傾けながらボールを操作する。
が、主な要素。今日は1番のところをメモとして残します。
丁寧な解説はしません。主要な部分だけさくっと書くだけです。
キャプチャの流れとしては次のとおりです。
1.画面をタッチしたら写真を取る
2.写真を撮ったら、バイト列をbitmap型に変換する
てな感じです。
ではさっそく(汚い)コードを見てみましょう。ちなみに、Android SDK のバージョンは2.2です。
全体像は見せたくありません。ベタ書きもいいところで、とてもとても見せられたものではありません。
ちなみに、こんなクラスの中で定義してます。
class Preview extends SurfaceView implements SurfaceHolder.Callback, PictureCallback
|
さて、まずは1番。画面タッチイのベントハンドラメソッドをオーバーライドします。
@Override
public boolean onTouchEvent(MotionEvent e) {
if (e.getAction() == MotionEvent.ACTION_DOWN) {
mCamera.takePicture(null, null, this);
//mCamera.startPreview();
}
return true;
}
|
startPreviewしようとしたらなぜかエラーが止まらない。ということでコメントアウトして使ってます。特に問題はないので。
はい、次は2番。キャプチャのイベントハンドラメソッドをオーバーライドします。
public void onPictureTaken(byte[] data, Camera camera) {
try {
String dataName = "photo.jpg";
saveDataToSdCard(data, dataName);
} catch (Exception e) {
cameraRelease();
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
bmpData = BitmapFactory.decodeByteArray(data, 0, data.length, options);
}
|
SDカードに入れてるのは、特に意味は無いですw
処理時間を短くしたかったので、変換の際に画素数を落としています。縦横共に1/4になります。
以上~w
次は画像処理まわりですねw いつになることやらw