Impression d'écran avec incrustation du curseur de la souris
Page 1 sur 1
Impression d'écran avec incrustation du curseur de la souris
Voici une entité qui permet de réaliser une impression d'écran en incrustant dans l'image le curseur de la souris. Cette fonctionnalité vous sera utile si vous souhaitez développer un logiciel de type Screen Recorder ....
gus.image.printscreen2
Paramétrage : vous devez mapper "icon_cursor" avec un objet de type ImageIcon qui représentera le curseur de votre souris. L'image de l'icône doit être conçue de telle manière que la pointe du curseur soit positionnée en haut à gauche de l'image. Voici quelques exemples de fichiers gif que vous pouvez utiliser :
Le code source de cette entité est donné ci-dessous :
gus.image.printscreen2
Paramétrage : vous devez mapper "icon_cursor" avec un objet de type ImageIcon qui représentera le curseur de votre souris. L'image de l'icône doit être conçue de telle manière que la pointe du curseur soit positionnée en haut à gauche de l'image. Voici quelques exemples de fichiers gif que vous pouvez utiliser :
Le code source de cette entité est donné ci-dessous :
- Code:
package gus05.entity.gus.image.printscreen2;
import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.features.Provide;
import gus05.framework.features.Register;
import gus05.framework.features.Retrieve;
public class PrintScreen2 implements Entity, Provide, Register, Retrieve {
public String getName() {return "gus.image.printscreen2";}
public String getCreationDate() {return "2010.09.20";}
public final static long REFRESH = 50;
private ImageIcon icon_cursor;
private Rectangle screenRect;
private Robot robot;
private long lastTime = -1;
private BufferedImage image;
public PrintScreen2() throws Exception
{
icon_cursor = (ImageIcon) Outside.resource(this,"icon_cursor");
screenRect = getScreenRect();
robot = new Robot();
}
public Object retrieve(String key) throws Exception
{
if(key.equals("icon_cursor")) return icon_cursor;
throw new Exception("Unknown key: "+key);
}
public synchronized void register(String key, Object obj) throws Exception
{
if(key.equals("icon_cursor")) {icon_cursor = (ImageIcon) obj;return;}
throw new Exception("Unknown key: "+key);
}
public synchronized Object provide() throws Exception
{
long time = System.currentTimeMillis();
if(time>lastTime+REFRESH || image==null)
{
lastTime = time;
performPrintScreen();
}
return image;
}
private synchronized void performPrintScreen()
{
image = robot.createScreenCapture(screenRect);
if(icon_cursor==null) return;
Point cursor = MouseInfo.getPointerInfo().getLocation();
Graphics g = image.getGraphics();
g.drawImage(icon_cursor.getImage(),cursor.x,cursor.y,null);
g.dispose();
}
private Rectangle getScreenRect()
{
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = env.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();
return gc.getBounds();
}
}
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus