1

ユーザーが写真を撮るアプリを開発しました。画像は一時的にファイルに書き込まれ、ネットワーク接続を確認し、ネットワークが利用可能な場合はサーバーにアップロードします。

私はテストしてきましたが、それは御馳走のように機能します。ただし、LG Nexus 4 でテストを開始したところ、画像の品質が非常に低くなっています。プレビューは完璧な品質ですが、アップロードしてアプリに表示すると、その品質は非常に低く、画像を確認することさえできません.

samsung s3 と s4 でテストしましたが、表示される画像は完璧です。onPictureTaken メソッドでバイト配列のサイズをログに記録しましたが、他の 2 つのデバイスによって生成された値と比較すると、サイズは非常に小さくなっています。

私はこれを取得するログの猫に気づいた:

09-22 10:15:13.001     196-4548/? E/mm-camera﹕ sensor_load_chromatix: libchromatix_imx111_preview.so: 30
09-22 10:15:13.101     196-4548/? E/mm-camera﹕ vfe_ops_init: E
09-22 10:15:13.111     196-4548/? E/mm-camera﹕ vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM
09-22 10:15:13.111     196-4548/? E/mm-camera﹕ vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM
09-22 10:15:13.121     196-4548/? E/mm-camera﹕ mctl_init_stats_proc_info: snap_max_line_cnt =30096
09-22 10:15:13.131      174-174/? E/QCameraHWI﹕ android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0xb79ae9d8, mStreamDisplay = 0x0xb79a8448
09-22 10:15:13.131      174-174/? D/QCameraHWI﹕ android::status_t android::QCameraHardwareInterface::startPreview():  start preview now
09-22 10:15:13.131      174-174/? I/QCameraHWI﹕ android::status_t android::QCameraHardwareInterface::startPreview2():Setting ZSL mode
09-22 10:15:13.131     196-4548/? E/mm-camera﹕ config_proc_CAMERA_SET_INFORM_STARTPREVIEW
09-22 10:15:13.131     196-4548/? E/mm-camera﹕ config_update_stream_info Storing stream parameters for video inst 1 as : width = 640, height 480, format = 1 inst_handle = 810081 cid = 0
09-22 10:15:13.151     196-4548/? E/mm-camera﹕ config_update_stream_info Storing stream parameters for video inst 3 as : width = 640, height 480, format = 1 inst_handle = 830083 cid = 0
09-22 10:15:13.151     196-4548/? E/mm-camera﹕ config_update_stream_info Storing stream parameters for video inst 4 as : width = 512, height 384, format = 1 inst_handle = 840084 cid = 0
09-22 10:15:13.171     196-4548/? E/mm-camera﹕ config_decide_vfe_outputs: Ports Used 3, Op mode 1
09-22 10:15:13.171     196-4548/? E/mm-camera﹕ config_decide_vfe_outputs Current mode 0 Full size streaming : Disabled
09-22 10:15:13.171     196-4548/? E/mm-camera﹕ config_decide_vfe_outputs: Primary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 1, Path: 1
09-22 10:15:13.171     196-4548/? E/mm-camera﹕ config_decide_vfe_outputs: Secondary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 3, Path: 4
09-22 10:15:13.171     196-4548/? E/mm-camera﹕ config_update_inst_handles Updated the inst handles as 810081, 830083, 0, 0
09-22 10:15:13.312     196-4548/? E/mm-camera﹕ sensor_load_chromatix: libchromatix_imx111_zsl.so: 26
09-22 10:15:13.402     196-4548/? E/mm-camera﹕ camif_client_set_params: camif has associated with obj mask 0x1
09-22 10:15:13.402     196-4548/? E/mm-camera﹕ config_v2_CAMERA_START_common CAMIF_PARAMS_ADD_OBJ_ID failed -1
09-22 10:15:13.402     196-4548/? E/mm-camera﹕ vfe_operation_config: format 3
09-22 10:15:13.402     196-4548/? E/mm-camera﹕ vfe_operation_config:vfe_op_mode=5
09-22 10:15:13.402     196-4548/? E/mm-camera﹕ Invalid ASD Set Params Type
09-22 10:15:13.402     196-4548/? E/mm-camera﹕ vfe_set_bestshot: Bestshot mode not changed

だから、誰かが以前にこれに出くわしたことがあるかどうかを期待して尋ねているだけですか?または、進め方がわからないので、誰かがそれについて何か情報を持っていますか...

ありがとう

編集 この問題を修正するために、次のコードを追加しました。

Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> supportedPreviewSizes =  camera.getParameters().getSupportedPreviewSizes();
List<Camera.Size> supportedPictureSize = camera.getParameters().getSupportedPictureSizes();
Log.i("SUPPORTED SIZES: ", String.valueOf(supportedPreviewSizes.size()));
Log.i("SUPPORTED PICTURE SIZES: ", String.valueOf(supportedPictureSize.size()));
parameters.setPreviewSize(supportedPreviewSizes.get(0).width, supportedPreviewSizes.get(0).height);
parameters.setPictureSize(supportedPictureSize.get(1).width, supportedPictureSize.get(1).height);

サポートされていない画像サイズが使用されていると思っていたので。

4

1 に答える 1