【问题标题】:SWT Overlay layoutSWT 覆盖布局
【发布时间】:2010-03-17 16:43:08
【问题描述】:

我想要一个透明的画布。

我有一个正在渲染视频的画布。我想在视频顶部画一个画布,这样我就可以在视频上绘制一个矩形来选择视频的某个区域以用于其他目的(例如缩放、拍摄图像等)。

在 SWT 中可以吗?

谢谢。

【问题讨论】:

  • 你能提供一些代码让我试试看吗?
  • 我也想知道怎么做。

标签: swt overlay


【解决方案1】:

我不认为你可以有一个透明的画布,但是你可以在画布上实现双缓冲播放视频,这也可以提高帧率并减少屏幕闪烁。

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

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2013-03-04
    相关资源
    最近更新 更多