我有两张图片,一张是我从相机视图中看到的,另一张是在相机视图上。 我想在SD卡上保存这两张图像的组合。我想我必须zork zith canvas但我不知道如何将画布保存到jpeg中,即将画布中的数据写入FileOutputStream
这是我的代码
output = new File(imagesFolder, fileName);
ImageView view = (ImageView) gameactivity.findViewById(R.id.imageView3);
view.setDrawingCacheEnabled(true);
Bitmap bitmap2 = view.getDrawingCache();
FileOutputStream fos = null;
try {
fos = new FileOutputStream(output);
fos.write(data);
fos.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
try {
Bitmap bitmap = BitmapFactory.decodeFile(output.getAbsolutePath());
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(bitmap2, null, null);
// HERE I HAVE TO SAVE THE CANVAS INTO JPEG
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
你能告诉我这是不是一个好的开始?以及如何解决我的问题,我在堆栈上的类似帖子上找不到好的答案(因为我不想将画布绘制到视图中)
答案 0 :(得分:1)
Canvas只是一种绘制到Bitmap的方法。
您应该使用new Canvas(myBitmap);
创建Canvas。因此,当您在Canvas上绘制时,它会绘制到您的位图。
所以使用myBitmap
。
String fileName = Environment.getExternalStorageDirectory() + "/test.png";
OutputStream stream = new FileOutputStream(fileName);
/* Write bitmap to file using JPEG or PNG and 80% quality hint for JPEG. */
myBitmap.compress(CompressFormat.PNG, 80, stream);
stream.close();