所以我做了一個應用程序,從csv文件創建一個圖形化的時間線。我已經完成了這部分,現在我只需要幫助讓圖像「漂亮」。捕獲圖像時,JFrame的邊框也被捕獲! 我該如何使邊界不被捕獲?或者我該如何擺脫它並保持圖像的大小? 如何擺脫通過捕捉jframe圖像文件所產生的邊界?
1
A
回答
0
BufferedImage image = (BufferedImage)createImage(getContentPane().getSize().width, getContentPane().getSize().height);
getContentPane().paint(image.getGraphics());
這是我相信我一直在尋找的東西。
+0
它確實很短。但是...你是否介意以這種方式修改你的答案,其他人(比如我)也可以使用它?你在哪裏得到這個神奇的'createImage()'方法?哪個類包含它,或者裏面有什麼? – MockerTim 2011-06-14 09:00:04
+1
這是一種JFrame從java.awt.Component繼承的方法。 它需要在寬度和高度,並返回一個圖像。 – 2011-06-14 14:16:19
2
這是一個簡單的例子。只是爲了澄清你的需求。基於solution of How to remove the title bar from a JFrame Screenshot?。
以下程序會截取其JFrame並將其寫入文件。
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
/* Writes self screenshot on Screenshot button click. */
public class ScreenshotFrame extends JFrame {
public ScreenshotFrame() {
initComponents();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new ScreenshotFrame().setVisible(true);
}
});
}
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
JButton screenshotButton = new JButton();
screenshotButton.setText("Screenshot");
screenshotButton.setToolTipText("Take my screenshot.");
screenshotButton.addActionListener(new ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
writeImageToFile(getScreenshot());
}
});
getContentPane().setLayout(new FlowLayout());
getContentPane().add(screenshotButton);
pack();
}
/* Modified method from pointed solution. */
private BufferedImage getScreenshot() {
Dimension dim = this.getContentPane().getSize();
BufferedImage image =
new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);
this.getContentPane().paint(image.getGraphics());
return image;
}
/* Write image to png file in current dir.*/
private void writeImageToFile(BufferedImage image) {
try {
File file = new File("JFrameScreenshot.png");
file.createNewFile();
ImageIO.write(image, "png", file);
} catch (IOException ex) {/*do smth*/ }
}
}
這是你想要的,if_zero_equals_one?如果沒有,也許你可以在你的問題中添加一些代碼,試圖做你想做的事情。
相關問題
- 1. 如何擺脫圖像邊界?
- 2. 如何通過文件夾IOS擺脫資產圖像
- 3. 如何擺脫外表的邊界
- 4. 如何從一個JFrame捕捉圖像?(過快)
- 5. 強制drawingContext行捕捉像素邊界
- 6. 如何擺脫Stata中的模糊邊界-by() - 圖
- 7. 無法擺脫Safari的圖像邊框
- 8. 捕獲圖像的邊界?
- 9. 在Rails中擺脫捕捉所有路徑的技巧
- 10. 如何使用鏈接的圖像時,擺脫連接的邊界?
- 11. 擺脫PHPStorm中類的邊界
- 12. 如何擺脫jframe中的nullpointerexception?
- 13. 將JFrame捕捉到屏幕邊緣
- 14. 如何擺脫邊距
- 15. 如何擺脫邊框
- 16. 如何從.Net世界的網站捕捉攝像頭圖像?
- 17. 如何擺脫圖像按鈕周圍的白色邊緣?
- 18. 如何擺脫小部件邊框?
- 19. 如何捕捉在ExpressJS生產res.send(404)
- 20. 如何在Android上捕捉圖像捕捉事件?
- 21. 如何擺脫appname.vshost.exe文件?
- 22. 如何擺脫IE中鏈接/ JavaScript元素的邊界?
- 23. 如何擺脫框架和框架之間的單個邊界?
- 24. LibGDX如何在演員邊界外捕捉觸摸事件
- 25. 如何通過css擺脫border-bottom?
- 26. 如何通過查詢擺脫重複?
- 27. 如何通過CSS(un-display)擺脫自動生成的跨度?
- 28. 擺脫警告的產生由Collections.unmodifiableList()
- 29. 如何避免身體標籤產生的邊界/邊界?
- 30. WPF:如何避免圖像脫離畫布的邊界?
潛在的重複:[如何從JFrame屏幕截圖移除標題欄?](http://stackoverflow.com/questions/4515902/how-to-remove-the-title-bar-from-a-jframe -screenshot) – Darien 2011-06-10 20:54:18
不完全是我想到的。我知道如何獲得屏幕截圖。我正在尋找直接捕獲幀內圖像 – 2011-06-10 21:28:05
另一個問題提到「標題欄頂部的空白條」......不是我所看到的圍繞您的灰色邊框的一部分圖片? – Darien 2011-06-10 21:41:13