2017-08-15 42 views
1

我想獲取Canvas中特定座標的顏色。我已經嘗試過讓使用此代碼的快照:什麼是讀取JavaFX Canvas像素的最佳方式?

WritableImage snap = gc.getCanvas().snapshot(null, null); 
snap.getPixelReader().getArgb(x, y); //This just gets the color without assigning it. 

,但它只是需要太多的時間我的應用程序。我想知道是否有其他方法可以訪問我知道座標的像素的顏色。

回答

4

A Canvas緩衝圖指令通過調用GraphicsContext的方法規定。有沒有像素要讀取,直到Canvas被渲染在後面的pulse中,並且指令緩衝區的內部格式沒有暴露在API中。

作爲一種替代方案,可以考慮繪製一個BufferedImage,說明here,它允許直接訪問圖像的像素並通過它的WritableRaster。將以下行添加到此完整example中,以ARGB順序輸出不透明紅色的預期值:ffff0000

System.out.println(Integer.toHexString(bi.getRGB(50, 550))); 

image

相關問題