Как получить текущее растровое изображение холста? - PullRequest
3 голосов
/ 16 ноября 2010

Я хочу получить текущее растровое изображение, связанное с моим холстом, чтобы я мог выполнять над ним операции.Я не вижу, как это сделать, хотя.

Я видел несколько примеров, когда вы создаете растровое изображение и настраиваете холст для использования этого растрового изображения, поэтому, очевидно, вы сможете получить к нему доступ позже, но я использую холст, возвращенный из SurfaceHolder, так что нет конструктора.

Например, примеры часто показывают такие вещи:

Bitmap bmp = Bitmap.createBitmap(xxx, yyy, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmp);
  • , поэтому на данный момент я вижу bmp.

В моемВ этом случае холст получается следующим образом:

final SurfaceHolder holder = getSurfaceHolder();

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

Итак, как я могу получить растровое изображение для c?

Edit @Reuben - возможно, вы правы, я так и сделалинтересно это.Короче говоря, моя цель состоит в том, чтобы захватить текущее содержимое холста, где я нарисовал «материал», и сделать его копию в обратном порядке, чтобы поместить его внизу.Как отражение.Пример этого, который я обнаружил, выполнил все это с помощью растровых изображений, поэтому я предположил, что мне нужно каким-то образом захватить текущий холст в растровое изображение, чтобы затем использовать его.Если есть лучший способ сделать это, я весь в ушах!

Ответы [ 2 ]

3 голосов
/ 14 февраля 2012

Лучше поздно, чем никогда:)

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

Затем вы можете получить доступ к растровому изображению из BitmapDrawable.

в моем случае я сделал это:

imageView.setImageBitmap (bitmapDrawable.getBitmap ());

0 голосов
/ 16 ноября 2010

c.getSurface () предоставляет вам прямой доступ к объекту Surface.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...