Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将画布图形保存为图像?_Android_Image Processing_Canvas_Surfaceview - Fatal编程技术网

Android 如何将画布图形保存为图像?

Android 如何将画布图形保存为图像?,android,image-processing,canvas,surfaceview,Android,Image Processing,Canvas,Surfaceview,在我的android应用程序中,我将图形保存为图像。我可以保存文件,但保存得不是100%完美,也就是说,一些内容丢失,空格也来了。下面是我通过onclick调用的函数。请帮助我如何保存完美的绘图 有关屏幕截图,请访问以下链接: , DigitalSignatureActivity.java private DrawingSurface drawingSurface; // To save file as Image public void saveDrawing(Vi

在我的android应用程序中,我将图形保存为图像。我可以保存文件,但保存得不是100%完美,也就是说,一些内容丢失,空格也来了。下面是我通过onclick调用的函数。请帮助我如何保存完美的绘图 有关屏幕截图,请访问以下链接: ,

DigitalSignatureActivity.java

private DrawingSurface drawingSurface;

    // To save file as Image
        public void saveDrawing(View v) throws IOException {

            File mediaStorageDir = new File(
                    Environment
                            .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                    "MySignatures");
             Bitmap nBitmap = drawingSurface.getBitmap();
            try {
                if (!mediaStorageDir.exists()) {
                    mediaStorageDir.mkdirs();
                }
                String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
                        .format(new Date());
                File mediaFile = new File(mediaStorageDir.getPath()
                        + File.separator + "SIGN_" + timeStamp + ".png");
             FileOutputStream out = new FileOutputStream(mediaFile);

            nBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
                out.flush();
                out.close();
                Toast.makeText(this, "Signature saved  to " + mediaFile,
                        Toast.LENGTH_LONG).show();
            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "Not saved",
                        Toast.LENGTH_SHORT).show();
            }

        }
DrawingSurface.java

public class DrawingSurface extends SurfaceView implements SurfaceHolder.Callback {
//some code
}

我通过设置canvas.drawColor(Color.WHITE,PorterDuff.Mode.DARKEN)解决了这个问题;在DrawingSurface.java类中,我通过设置canvas.drawColor(Color.WHITE,PorterDuff.Mode.DARKEN)解决了这个问题;在DrawingSurface.java类中

您所说的“某些内容丢失了”是什么意思?你能发布一个屏幕吗?@Waqas请访问以下屏幕链接:,你所说的“一些内容丢失了”是什么意思?你能发布屏幕吗?@Waqas请访问以下屏幕链接:,