2011-12-16 10 views
0

現在の画面のスクリーンショットを作成してイメージを保存しています。私はその画像を開いて、特定の要素のボックスを選択するか、写真を望むものを選択し、その小さな選択された画像を ファイルに保存することができるようにします。助けてください。イメージの一部を選択してその部分のみをファイルに保存する方法

RemoteControlConfiguration config = new RemoteControlConfiguration(); config.setPort(4447);

のための負の値を指定して、新しいイメージのためのオブジェクトを、このグラフィックスオブジェクト上の大きな画像を描くグラフィックスを作成し、新しいサイズで新しいBufferedImageを作成し、あなたの新しい境界の座標を知っていると仮定すると、
SeleniumServer server = new SeleniumServer(config); 
    try{ 
    // TODO Auto-generated method stub 

    server.start(); 

    DefaultSelenium selenium = new DefaultSelenium("localhost", 4447, "*firefox", "http://www.google.com/"); 
    selenium.start(); 
    selenium.open("http://www.google.com/"); 
    selenium.waitForPageToLoad("10000"); 
    selenium.windowMaximize(); 

    BufferedImage image1 = Screenshot("screen1.jpg"); 

    //selenium.type("q", "Hello world"); 
    Thread.sleep(2000); 

    BufferedImage image2 = Screenshot("screen2.jpg"); 

      public static BufferedImage Screenshot(String fileName) throws Exception 
     { 
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    Rectangle screenRectangle = new Rectangle(screenSize); 
    Robot robot = new Robot(); 
    BufferedImage image = robot.createScreenCapture(screenRectangle); 
    File file = new File(fileName); 
    ImageIO.write(image, "jpg", file); 
    return image; 
     } 

答えて

2

x、y。ソースイメージは宛先よりも大きいので、宛先に収まるビットだけが書き込まれます。そして、あなたはImageIO.writeを使用して小さい方()サブイメージを使用する提案のためのアンドリュー・トンプソンへ

EDIT 感謝を保存

BufferedImage image1 = Screenshot("screen1.jpg"); 
BufferedImage subImage = image1.getSubImage(x, y, width, height); 
+2

[BufferedImage.getSubimage(X、Y、W、H) ](http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html#getSubimage%28int,%20int,%20int,%20int%29)は、 1ライン ')の方法で画像を得ることができます。 –

+0

ああ、私に知らせる! –

+0

それを答えに編集して、ノイズを削除することができます。 ;) –

関連する問題