SWT Наложение макета - PullRequest
       7

SWT Наложение макета

3 голосов
/ 17 марта 2010

Я хочу иметь прозрачный холст.

У меня есть холст, на котором воспроизводится видео. Мне нужен холст поверх видео, чтобы я мог нарисовать прямоугольник поверх видео, чтобы выбрать область видео для какой-либо другой цели (например, для увеличения, для получения изображения и т. Д.).

Возможно ли это в SWT?

Спасибо.

1 Ответ

2 голосов
/ 27 мая 2011

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

Image bufferImage = (Image) canvas.getData("buffer-image");
            Display display = Display.getDefault();
            if (bufferImage == null //if there is no image
                    || bufferImage.getBounds().width != canvas.getSize().x //if the image is incorrectly sized, which could result in unnecessary expenditures or not drawing everything
                    || bufferImage.getBounds().height != canvas.getSize().y) {
                bufferImage = new Image(display, canvas.getSize().x, canvas.getSize().y);
                canvas.setData("buffer-image", bufferImage);
            }

            GC bufferImageGC = new GC(bufferImage);
            bufferImageGC.setBackground(e.gc.getBackground());
            bufferImageGC.setForeground(e.gc.getForeground());

                    //fill in the background
            Rectangle background = bufferImage.getBounds();
            bufferImageGC.fillRectangle(0, 0, background.width, background.height);

                    //draw video here, remember to draw onto bufferImageGC
                    //draw anything else you want here

Надеюсь, это поможет.

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