Получение растрового изображения окна spark

#actionscript-3 #apache-flex #actionscript #air #flex4

#actionscript-3 #apache-flex #actionscript #air #flex4

Вопрос:

У меня есть приложение AIR, над которым я работаю, в котором я хотел бы в основном получить растровое изображение того, что происходит в отдельном окне spark. Вариант использования — это масштабированный предварительный просмотр окна spark, которое, скорее всего, будет отображаться на проекторе на главном дисплее. Я хочу вставить растровое изображение в изображение spark в качестве источника. Поиск в Google, похоже, мало что показывает, или я просто не знаю, какие термины использовать в Google. Кто-нибудь может указать мне правильное направление? У кого-нибудь есть лучший способ добиться этого?

Спасибо!

Комментарии:

1. Вы хотите сделать скриншот окна?

Ответ №1:

Если вы хотите создать растровое изображение какого-либо DisplayObject, будь то целое окно (этап) или просто спрайт, вам следует использовать метод BitmapData draw() .

Следующий код сделает «снимок экрана» всей сцены, создаст его растровое изображение и добавит его в масштабе к верхнему левому углу:

 var bd:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
bd.draw(stage);

var bitmap:Bitmap = new Bitmap(bd);
bitmap.width = 300;
bitmap.scaleY = bitmap.scaleX;
addChild(bitmap);
  

Вам было бы полезно прочитать больше о Bitmap и BitmapData, чтобы использовать такие функции, как:

  • Привязка пикселей
  • Сглаживание
  • Прозрачность

и другие. Например, сглаживание — это то, что позволяет улучшить изображение при масштабировании, но оно считается фильтром и может снизить производительность. Вот почему было бы лучше применять сглаживание к bitmapdata при рисовании (рисование масштабированного изображения выполняется с помощью матрицы), а не на растровом изображении; но только если вы не планируете масштабировать изображение во время выполнения.

Надеюсь, это ответ на ваш вопрос!

Комментарии:

1. Да, это именно то, что мне было нужно! Спасибо!