【发布时间】:2015-01-12 11:48:15
【问题描述】:
我准备的视图(使用 setDisplayOrientation())处于纵向模式,但生成的图像(使用 takePicture() 拍摄,使用 SaveImageTask 保存)处于横向模式。
这是我的预览和捕获代码:
public void startPreview() {
this.mCamera.setDisplayOrientation(90);
try {
this.mCamera.setPreviewDisplay(this.mSurfaceHolder);
this.mCamera.startPreview();
} catch (Exception e) {
Log.d("camera" , "in startPreview Catch");
}
}
public void captureNow(View view) {
this.mCamera.takePicture(shutterCallback, rawCallback, jpegCallback);
this.startPreview();
}
这是我捕获的图像保存代码:
public class SaveImageTask extends AsyncTask<byte[], Void, Void> {
@Override
protected Void doInBackground(byte[]... data) {
FileOutputStream outStream = null;
// Write to SD Card
try {
File dir = new File(
Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "camTest");
dir.mkdirs();
String fileName = String.format("%d.jpg", System.currentTimeMillis());
File outFile = new File(dir, fileName);
outStream = new FileOutputStream(outFile);
outStream.write(data[0]);
outStream.flush();
outStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
return null;
}
}
如何旋转捕获的图像?传感器似乎始终处于横向模式。(注:API 21)
【问题讨论】: