Frage

Wenn der Benutzer mit seinem Telefon Fotos macht, möchte ich, dass LWUit ein bestimmtes Foto zu einem RecordStore hinzufügt und dieses Foto später abrufen kann. Wie kann man das erreichen?

War es hilfreich?

Lösung 2

Ok, ich mache die Anwendung startet die Kamera über einen Befehl:

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();

Im actionperformed des mcapturecommand -Befehls:

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);
        }
    }

Der Code von 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;
    }

Jetzt weiß ich nicht, wo das Bild gespeichert wird, wenn ich die CreateThumbnail -Methode aufgerufen habe, dh nach dem Aufrufen von Images.Createimage: Es gibt zwei CreateImage -Aufrufe in der Methode capture () und eine in der createThumbnail () -Methode. Mein eigentliches Problem ist es jedoch, den Ort des erstellten Bildes zu kennen und wie man es mit einer RecordStore-ID für Bankgeschäfte in Verbindung bringt.

Andere Tipps

RMS ist nicht gut für die Aufbewahrung der Fotos. Weil RMS für eine geringe Lagerung ausgelegt ist. Sie können nicht umgehen riesig Datenmenge. Besser können Sie aus dem Telefonspeicher oder einer Speicherkarte lesen. Wie können Sie das aktuell erfasste Foto ohne Ihre Bewerbung aufnehmen?

Bearbeiten:

Sie können die Anwendung für entwickeln das Foto machen und speichern Sie es in RMS (aber nicht groß) oder speichern Sie es auf dem Server durch Anrufe Internetservice.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top