所以我正在阅读许多关于如何获得图像预览然后保存的教程。通常的教程涉及使用SurfaceHolder
andSurfaceView
和PictureCallback
.
正如文档中显示的那样,这是
public abstract void onPictureTaken (byte[] data, Camera camera)
通常要保存图像,您可以执行以下操作
/** Handles data for jpeg picture */
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
FileOutputStream outStream = null;
try {
// write to local sandbox file system
// outStream =
// CameraDemo.this.openFileOutput(String.format("%d.jpg",
// System.currentTimeMillis()), 0);
// Or write to sdcard
outStream = new FileOutputStream(String.format(
"/sdcard/%d.jpg", System.currentTimeMillis()));
outStream.write(data);
outStream.close();
Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
Log.d(TAG, "onPictureTaken - jpeg");
}
};
但我对保存 jpeg 不感兴趣。我想保存一个 tiff 图像。阅读文档我发现了一个关于data
格式的非常普遍的评论:
拍照后图像数据可用时调用。数据的格式取决于回调的上下文和 Camera.Parameters 设置。
所以我点击了Camera.Parameters但我没有发现任何有用的东西。
有没有办法将字节保存为 tiff?难道我做错了什么?