package jxcapture.image.win; import com.teamdev.jxcapture.CompressionQuality; import com.teamdev.jxcapture.ImageCapture; import com.teamdev.jxcapture.InterpolationMode; import com.teamdev.jxcapture.image.ImageFormat; import com.teamdev.jxcapture.video.WindowSource; import com.teamdev.jxdesktop.WindowManager; import com.teamdev.jxdesktop.ui.Window; import java.awt.*; import java.io.File; /** * The example shows how to capture a Notepad window. * <pre> * Platforms: Windows * Capture source: WindowSource * Output image format: JPEG * Output file: Notepad.jpg * * @author Ikryanov Vladimir * @author Serge Piletsky */ public class CaptureNotepadWindow { public static void main(String[] args) throws Exception { // Launching Notepad application Runtime.getRuntime().exec("notepad"); // Finding Notepad window by title WindowManager windowManager = WindowManager.getInstance(); Window notepad = (Window) windowManager.findWindow("Untitled - Notepad"); if (notepad == null) { throw new RuntimeException("Notepad window was not found"); } // Capturing notepad window ImageCapture imageCapture = ImageCapture.create(new WindowSource(notepad)); imageCapture.setCaptureArea(new Rectangle(new Dimension(640, 480))); // imageCapture.setCaptureArea(new Rectangle(-20, -20, 640, 480)); long before = System.currentTimeMillis(); imageCapture. takeSnapshot() .resize(new Dimension(1024, 768), InterpolationMode.HighQualityBicubic) .save(new File("Notepad.jpg"), ImageFormat.JPEG, CompressionQuality.BEST); imageCapture.release(); long after = System.currentTimeMillis(); System.out.println("Operation took " + (after - before)); } } |