将所有 Camera2 CaptureResults 写入文件
Writing all Camera2 CaptureResults into a file
我正在尝试将使用 Camera2
API 在 Android
上采集的所有参数导出到文本文件中。我发现它们都包含在 CaptureCallback
中,但我只是不知道如何将它们全部解析并写入 file
。
private CameraCaptureSession.CaptureCallback mCaptureCallback = new CameraCaptureSession.CaptureCallback()
{
private void process(CaptureResult result)
{
//parse and write as txt all available result keys and values
}
}
这可能是一件容易的事。
这里有一段代码可以完成这项工作。我打开一个文件,解析所有键并将值写入其中:
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "MyApp");
File outputfile = new File(mediaStorageDir, "Camera_parameters.txt");
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
return;
}
}
try {
FileOutputStream m_outputstream = new FileOutputStream(outputfile);
OutputStreamWriter m_stream = new OutputStreamWriter(m_outputstream);
List<CaptureResult.Key<?>> keys = result.getKeys();
for (CaptureResult.Key<?> key : keys) {
Log.d(TAG, key + " has value " + result.get(key));
m_stream.write(key + "\t" + result.get(key) + "\n");
}
m_stream.close();
}
catch (IOException e)
{
Log.e("Exception", "File write failed: " + e.toString());
}
我正在尝试将使用 Camera2
API 在 Android
上采集的所有参数导出到文本文件中。我发现它们都包含在 CaptureCallback
中,但我只是不知道如何将它们全部解析并写入 file
。
private CameraCaptureSession.CaptureCallback mCaptureCallback = new CameraCaptureSession.CaptureCallback()
{
private void process(CaptureResult result)
{
//parse and write as txt all available result keys and values
}
}
这可能是一件容易的事。
这里有一段代码可以完成这项工作。我打开一个文件,解析所有键并将值写入其中:
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "MyApp");
File outputfile = new File(mediaStorageDir, "Camera_parameters.txt");
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
return;
}
}
try {
FileOutputStream m_outputstream = new FileOutputStream(outputfile);
OutputStreamWriter m_stream = new OutputStreamWriter(m_outputstream);
List<CaptureResult.Key<?>> keys = result.getKeys();
for (CaptureResult.Key<?> key : keys) {
Log.d(TAG, key + " has value " + result.get(key));
m_stream.write(key + "\t" + result.get(key) + "\n");
}
m_stream.close();
}
catch (IOException e)
{
Log.e("Exception", "File write failed: " + e.toString());
}