BF [3073316] - Screenshot does not work in Linux
http://sourceforge.net/support/tracker.php?aid=3073316
This commit is contained in:
parent
694750e199
commit
74c19f5c65
|
@ -10,13 +10,17 @@
|
||||||
* You should have received a copy of the GNU General Public License along *
|
* You should have received a copy of the GNU General Public License along *
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., *
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
* For the text or an alternative of this public license, you may reach us *
|
|
||||||
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
|
||||||
* or via info@compiere.org or http://www.compiere.org/license.html *
|
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
package org.compiere.apps;
|
package org.compiere.apps;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
import javax.imageio.ImageWriter;
|
||||||
|
import javax.imageio.stream.ImageOutputStream;
|
||||||
|
import javax.swing.JFileChooser;
|
||||||
|
|
||||||
|
import java.awt.AWTException;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
|
import java.awt.Robot;
|
||||||
import java.awt.Window;
|
import java.awt.Window;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -24,11 +28,6 @@ import java.io.IOException;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
|
||||||
import javax.imageio.ImageWriter;
|
|
||||||
import javax.imageio.stream.ImageOutputStream;
|
|
||||||
import javax.swing.JFileChooser;
|
|
||||||
|
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.ExtensionFileFilter;
|
import org.compiere.util.ExtensionFileFilter;
|
||||||
|
@ -39,6 +38,10 @@ import org.compiere.util.Msg;
|
||||||
*
|
*
|
||||||
* @author Jorg Janke
|
* @author Jorg Janke
|
||||||
* @version $Id: ScreenShot.java,v 1.2 2006/07/30 00:51:27 jjanke Exp $
|
* @version $Id: ScreenShot.java,v 1.2 2006/07/30 00:51:27 jjanke Exp $
|
||||||
|
*
|
||||||
|
* @author jmpiloq, evenos GmbH
|
||||||
|
* @version $Id
|
||||||
|
* @see BF [ 3073316 ]
|
||||||
*/
|
*/
|
||||||
public class ScreenShot
|
public class ScreenShot
|
||||||
{
|
{
|
||||||
|
@ -50,6 +53,8 @@ public class ScreenShot
|
||||||
*/
|
*/
|
||||||
public static boolean createJPEG (Window window, String fileName)
|
public static boolean createJPEG (Window window, String fileName)
|
||||||
{
|
{
|
||||||
|
BufferedImage bi = null;
|
||||||
|
|
||||||
if (window == null || fileName == null)
|
if (window == null || fileName == null)
|
||||||
new IllegalArgumentException("ScreenShot.createJPEG Window os NULL");
|
new IllegalArgumentException("ScreenShot.createJPEG Window os NULL");
|
||||||
|
|
||||||
|
@ -71,7 +76,12 @@ public class ScreenShot
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Image
|
// Get Image
|
||||||
BufferedImage bi = getImage(window);
|
try {
|
||||||
|
Thread.sleep(1000);
|
||||||
|
bi = getImage(window);
|
||||||
|
} catch (InterruptedException ex) {
|
||||||
|
log.log(Level.SEVERE, "ex", ex);
|
||||||
|
}
|
||||||
|
|
||||||
// Write Image
|
// Write Image
|
||||||
try
|
try
|
||||||
|
@ -109,6 +119,7 @@ public class ScreenShot
|
||||||
String fileName = file.getAbsolutePath();
|
String fileName = file.getAbsolutePath();
|
||||||
if (!(fileName.toUpperCase().equals(".JPG") || fileName.toUpperCase().equals(".JPEG")))
|
if (!(fileName.toUpperCase().equals(".JPG") || fileName.toUpperCase().equals(".JPEG")))
|
||||||
fileName += ".jpg";
|
fileName += ".jpg";
|
||||||
|
fc.setVisible(false);
|
||||||
return new File (fileName);
|
return new File (fileName);
|
||||||
} // getFile
|
} // getFile
|
||||||
|
|
||||||
|
@ -119,9 +130,13 @@ public class ScreenShot
|
||||||
*/
|
*/
|
||||||
protected static BufferedImage getImage (Window window)
|
protected static BufferedImage getImage (Window window)
|
||||||
{
|
{
|
||||||
BufferedImage bi = new BufferedImage (window.getWidth(), window.getHeight(),
|
BufferedImage bi = null;
|
||||||
BufferedImage.TYPE_INT_RGB); // TYPE_INT_ARGB is tinted red
|
try {
|
||||||
|
bi = new Robot().createScreenCapture(window.getBounds());
|
||||||
window.paintAll(bi.createGraphics());
|
window.paintAll(bi.createGraphics());
|
||||||
|
} catch (AWTException ex) {
|
||||||
|
log.log(Level.SEVERE, "ex", ex);
|
||||||
|
}
|
||||||
return bi;
|
return bi;
|
||||||
} // getImage
|
} // getImage
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue