2010-03-17 125 views
3

我想要一个透明的画布。SWT覆盖布局

我有一个画布,其中的视频呈现。我需要在视频顶部放置一个画布,以便我可以在视频上绘制一个矩形以选择视频的某个区域用于其他目的(如缩放,拍摄图像等)。

SWT有可能吗?

谢谢。

+0

你能提供一些代码,我可以给它一个摆动? – 2010-03-20 12:10:14

+0

我想知道如何做到这一点。 – 2016-06-05 13:06:15

回答

2

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

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 

我希望这会有所帮助。