在 Pepper QISDK 上创建/写入文件
Create / write files on Pepper QISDK
我们想在 Pepper Robot 上拍照并保存(以某种方式)-> 第一个想法是压缩到 .jpg 文件。
TakePicture 动作取自 QISDK 教程,然后我们创建文件如下:
File file = new File("image.jpg");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
try {
FileOutputStream out = new FileOutputStream(file);
getPicture().compress(Bitmap.CompressFormat.JPEG, 100, out);
// getPicture() is The Bitmap we get from TakePicture Action.
Log.i("COMPRESSED", "SUCCES");
out.close();
} catch (IOException e) {
Log.i("COMPRESSED", "FAIL");
e.printStackTrace();
}
但是代码抛出异常 IOException 只读文件系统。 这意味着,机器人环境阻止 creating/writing 文件,我认为这是为了安全原因。 但是Bitmap格式的图片并不是我们想要的
是否有解决此问题的可能方法或解决方案?
我找到了解决方案,我刚刚用
制作了一个文件
file = File.createTempFile("image", ".jpg", this.getCacheDir());
这样可以创建一个完全可写的临时文件,之后可以对其进行压缩、编辑等
使用 /temp android 文件夹的绝对路径也可能有效,但这取决于 Android 版本。
我们想在 Pepper Robot 上拍照并保存(以某种方式)-> 第一个想法是压缩到 .jpg 文件。
TakePicture 动作取自 QISDK 教程,然后我们创建文件如下:
File file = new File("image.jpg"); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } try { FileOutputStream out = new FileOutputStream(file); getPicture().compress(Bitmap.CompressFormat.JPEG, 100, out); // getPicture() is The Bitmap we get from TakePicture Action. Log.i("COMPRESSED", "SUCCES"); out.close(); } catch (IOException e) { Log.i("COMPRESSED", "FAIL"); e.printStackTrace(); }
但是代码抛出异常 IOException 只读文件系统。 这意味着,机器人环境阻止 creating/writing 文件,我认为这是为了安全原因。 但是Bitmap格式的图片并不是我们想要的
是否有解决此问题的可能方法或解决方案?
我找到了解决方案,我刚刚用
file = File.createTempFile("image", ".jpg", this.getCacheDir());
这样可以创建一个完全可写的临时文件,之后可以对其进行压缩、编辑等
使用 /temp android 文件夹的绝对路径也可能有效,但这取决于 Android 版本。