2010-03-17 121 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 

我希望這會有所幫助。