有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在画布中绘制,并将其保存到更大的图像中

我有一个要求,比如在画布上画一些东西,并将其保存到更大的图像中。到目前为止,无论我在onDraw()方法中绘制什么并保存,它都会给出设备提供的图像/画布大小,比如538(w)/852(h)左右。我需要的图像大小几乎是原来的两倍,大约1000(w)/1500(h)而不丢失分辨率。任何示例代码,参考链接都会有帮助。提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    首先使用函数getDrawingCache()获取视图的位图,然后根据需要缩放位图

    view.buildDrawingCache();
    Bitmap bitmap = view.getDrawingCache();
    //bitmap = bitmap.createScaledBitmap(..as your requirements..);
    

    编辑

    你是说你想要更高质量的图像。你不能简单地从低质量的图像中获得高质量的图像。不过,您可以应用位图过滤来获得稍好的质量

    Bitmap bitmap = getDrawingCache();
    Bitmap output = Bitmap.createBitmap(/*width, height, bla bla bla*/);
    Canvas canvas = new Canvas(output);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
    Rect srcRect = new Rect(0,0,bitmap.getWidth(), bitmap.getHeight());
    Rect destRect = new Rect(0,0,output.getWidth(), output.getHeight());
    canvas.drawBitmap(bitmap, srcRect, destRect, paint);