0

ユーザーが自分の携帯電話で写真を撮るとき、LWUIT に特定の写真を取得してレコードストアに追加し、後でその写真を取得する必要があります。それを達成する方法は?

4

2 に答える 2

1

RMSは写真の保存には適していません。RMSは少量のストレージ用に設計されているためです。大量のデータを処理することはできません。電話のメモリやメモリカードから読み取ることができます。また、アプリケーションなしで現在キャプチャされている写真を撮るにはどうすればよいですか?

編集:

写真を撮るためのアプリケーションを開発してRMSに保存するか(ただし、大量ではありません)、Webサービスを呼び出してサーバーに保存することができます。

于 2011-06-15T09:33:02.693 に答える
1

わかりました、次のコマンドでアプリケーションにカメラを起動させます:

mPlayer = Manager.createPlayer("capture://video");
mPlayer.realize();

mVideoControl = (VideoControl) mPlayer.getControl("VideoControl");

Canvas canvas = new CameraCanvas(this, mVideoControl);
canvas.addCommand(mBackCommand);
canvas.addCommand(mCaptureCommand);
canvas.setCommandListener(this);
mDisplay.setCurrent(canvas);
mPlayer.start();

mCaptureCommand コマンドの actionPerformed で:

public void capture() {
        try {
            // Get the image.
            byte[] raw = mVideoControl.getSnapshot(null);
//                    "encoding=png&width=320&height=240");
            bytelen = raw.length;
            Image image = Image.createImage(raw, 0, raw.length);

            Image thumb = createThumbnail(image);

            // Place it in the main form.
            if (mMainForm.size() > 0 && mMainForm.get(0) instanceof StringItem) {
                mMainForm.delete(0);
            }
            mMainForm.append(thumb);

            // Flip back to the main form.
            mDisplay.setCurrent(mMainForm);

            // Shut down the player.
            mPlayer.close();
            mPlayer = null;
            mVideoControl = null;
        } catch (MediaException me) {
            handleException(me);
        }
    }

createThumbnail のコード:

private Image createThumbnail(Image image) {
        int sourceWidth = image.getWidth();
        int sourceHeight = image.getHeight();

        int thumbWidth = 64;
        int thumbHeight = -1;

        if (thumbHeight == -1) {
            thumbHeight = thumbWidth * sourceHeight / sourceWidth;
        }

        Image thumb = Image.createImage(thumbWidth, thumbHeight);
        Graphics g = thumb.getGraphics();

        for (int y = 0; y < thumbHeight; y++) {
            for (int x = 0; x < thumbWidth; x++) {
                g.setClip(x, y, 1, 1);
                int dx = x * sourceWidth / thumbWidth;
                int dy = y * sourceHeight / thumbHeight;
                g.drawImage(image, x - dx, y - dy, Graphics.LEFT | Graphics.TOP);
            }
        }
        Image immutableThumb = Image.createImage(thumb);
        return immutableThumb;
    }

createThumbnail メソッドを呼び出したとき、つまり Image.createImage を呼び出した後、Image がどこに保存されているかわかりません。しかし、私の本当の問題は、作成されたイメージの場所と、それを銀行クライアントのレコードストア ID に関連付ける方法を知ることです。

于 2011-06-16T08:51:19.423 に答える