gpt4 book ai didi

java - 如何获取 Canvas 的当前位图?

转载 作者:太空狗 更新时间:2023-10-29 12:58:00 25 4
gpt4 key购买 nike

我想获取与我的 Canvas 关联的当前位图,以便我可以对其执行操作。我看不出如何做到这一点。

我见过一些创建位图并将 Canvas 设置为使用该位图的示例,因此显然您可以稍后访问它,但我使用的是从 SurfaceHolder 返回的 Canvas ,因此没有构造函数。

比如例子中经常会出现这样的事情:

Bitmap bmp = Bitmap.createBitmap(xxx, yyy, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmp);
  • 所以此时我可以看到 bmp。

在我的例子中, Canvas 是通过以下方式获得的:

final SurfaceHolder holder = getSurfaceHolder();

Canvas c = null;
try {
c = holder.lockCanvas();

那么我怎样才能得到c的位图呢?

编辑@Reuben - 你可能是对的,我确实想知道这一点。简而言之,我的目标是捕获我绘制“东西”的当前 Canvas 内容,并制作一个副本,颠倒过来,放在下面。像倒影。我发现这个例子是通过位图执行的,所以我假设我需要以某种方式将当前 Canvas 捕获到位图然后使用它。如果有更好的方法可以做到这一点,我会洗耳恭听!

最佳答案

迟到总比不到好:)

BitmapDrawable bitDrawable = new BitmapDrawable();
bitmapDrawable.draw(videoView.getHolder().lockCanvas());

然后您可以从 BitmapDrawable 访问位图。

在我的例子中,我这样做了:

imageView.setImageBitmap(bitmapDrawable.getBitmap());

关于java - 如何获取 Canvas 的当前位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4193384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com