0

特定のデバイスで撮影した写真を保存すると、奇妙な線として保存されます。この画像の外観を説明する方法がわからないので、ここに示します。

ここに画像の説明を入力

私のコードはほとんどのデバイスで完全に動作しますが、次のデバイスで 2 人のユーザーに話しかけてもらいました。
1. HTC Thunderbolt
2. HTC Inspire
これがどのように起こっているか知っている人はいますか? これが私のコードです:

PictureCallback jpegCallback = new PictureCallback() {

    public void onPictureTaken(byte[] data, Camera camera) {
        mPreview.mCamera.startPreview();
        Log.e(TAG, "onPictureTaken - jpegCallback");

        try {
            // start camera saving system
            CameraPhoneStorageSystem camStorageSys = new CameraPhoneStorageSystem(
                    mContext);
            FileOutputStream out = null;

            String str = CameraPhoneStorageSystem
                    .returnImageNewNameForExternalMemory();
            galleryAddPic(str);

            out = new FileOutputStream(str);
            // mutableBitmap.compress(CompressFormat.JPEG, 85, out);
            out.write(data, 0, data.length);

            out.flush();
            out.close();
            out = null;
            Toast.makeText(mContext, "saved..", Toast.LENGTH_SHORT).show();

        } catch (IOException e) {
            Toast.makeText(
                    mContext,
                    "Error: Problem Saving Image.. Please check device memory",
                    Toast.LENGTH_SHORT).show();
            Log.e("saving", "problem saving images", e);

        } catch (Exception e) {
            // fail
            Log.d(TAG, "ERROR: " + e.getMessage());
        } finally {
            anyPicturesTaken = true;
            progressBar.setVisibility(View.GONE);
            snapButton.setVisibility(ImageButton.VISIBLE);
            Runtime.getRuntime().gc();

        }

    }

};

助けてくれてありがとう...

4

1 に答える 1

0

お使いのデバイスがその画像をサポートしていないためです。このリンクを確認し、ここで質問して回答してください

Android byte[] to image in Camera.onPreviewFrame

それが役立つことを願っています!

于 2012-08-12T23:41:42.873 に答える