1

我有 2 张图像,一张是从我的相机视图中获取的,另一张是在相机视图中。我想将这 2 个图像的组合保存在我的 SD 卡上。我想我必须使用 zork zith 画布,但我不知道如何将画布保存到 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();
            }

你能告诉我这是一个好的开始吗?以及如何解决我的问题,我在堆栈上的类似帖子上找不到好的答案(因为我不想将画布绘制到视图中)

4

1 回答 1

1

画布只是绘制位图的一种手段。

你应该已经用new Canvas(myBitmap);. 因此,当您在 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();
于 2013-02-06T10:05:40.137 回答