0
問題: 我在一個Java項目中使用JCEF(Java的鉻嵌入式框架),現在我想的網頁在CEF瀏覽器的截圖,但我沒有」爲此找到API。有沒有辦法做到這一點?非常感謝!獲取網頁的截圖中JCEF瀏覽器
問題: 我在一個Java項目中使用JCEF(Java的鉻嵌入式框架),現在我想的網頁在CEF瀏覽器的截圖,但我沒有」爲此找到API。有沒有辦法做到這一點?非常感謝!獲取網頁的截圖中JCEF瀏覽器
據我所知,CefBrowser是基於AWT的。要創建這些組件的屏幕快照,您可以(必須?)創建整個屏幕的捕獲,僅限於組件覆蓋的區域。
像這樣將工作:
// Your browser instance.
org.cef.browser.CefBrowser browser = ...
// Obtain the component that you want to capture in a screenshot.
java.awt.Component component = browser.getUIComponent();
// Determine what area of the entire screen is covered by the component.
java.awt.Point p = new java.awt.Point(0, 0);
javax.swing.SwingUtilities.convertPointToScreen(p, component);
java.awt.Rectangle region = component.getBounds();
region.x = p.x;
region.y = p.y;
// Store the selected area from the screen in a image buffer.
java.awt.image.BufferedImage image = new java.awt.Robot().createScreenCapture(region);
要保存到緩衝區中的文件,創建一個File
實例(使用一個JFileChooser
,如果你想提出一個很好的另存爲對話框,您的用戶)和使用javax.imageio.ImageIO#write(RenderedImage, String, File)
將圖像存儲到文件中。第二個參數是指您想要使用的文件格式(png,bmp等)。
如果任何人都可以提供直接存儲組件的代碼示例,而不將其捕獲爲更大屏幕的一部分(它也會捕獲您感興趣的其他組件) d非常感興趣。
[如何將Chromium嵌入式框架(CEF)與java集成]可能的重複(http://stackoverflow.com/questions/21192279/how-to-integrate-chromium-embedded-framework-cef-with-java) –
@GeorgeGarchagudashvili但我仍然找不到任何方法來做到這一點...... – Bode