Skip to content

Instantly share code, notes, and snippets.

@tscholze
Created September 29, 2018 19:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tscholze/9f0b9764a18768765a39f8ab3a5578f0 to your computer and use it in GitHub Desktop.
Save tscholze/9f0b9764a18768765a39f8ab3a5578f0 to your computer and use it in GitHub Desktop.
Trying to save an image from the Rasp Pi camera to a temp folder to ship it via an embedded web server - Step 1.
/**
Error:
E/AndroidRuntime: FATAL EXCEPTION: CameraThread
Process: xxxx, PID: 2634
java.lang.IllegalStateException: buffer has been freed
*/
private ImageReader.OnImageAvailableListener onImageAvailableListener = new ImageReader.OnImageAvailableListener()
{
@Override
public void onImageAvailable(ImageReader imageReader)
{
try
{
Image image = imageReader.acquireLatestImage();
ByteBuffer byteBuffer = image.getPlanes()[0].getBuffer();
byteBuffer.rewind();
image.close();
File file = File.createTempFile("test.jpg", null, getApplicationContext().getCacheDir());
if (!file.exists())
{
file.createNewFile();
}
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, false));
bufferedWriter.write(byteBuffer.asCharBuffer().array());
bufferedWriter.close();
Log.d(TAG, "Camera image listener wrote to file: " + file.getAbsolutePath());
}
catch (IOException e)
{
Log.e(TAG, "Camera image saving failed with error; " + e.getLocalizedMessage());
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment