日期:2014-05-18  浏览次数:20682 次

求JS+JSP截图
如题
  要求可以用鼠标拖动截图区大小和显示截图区预览
鼠标双击后截取图片存储到指定文件夹

------解决方案--------------------
首先用js来确定截取的图片的范围,给整个图片和截取范围信息传递给jsp程序,通过Java来截取
js确定截取图片的代码:http://topic.csdn.net/u/20080806/02/B295D4E4-C98F-4621-9835-B7D915B4952D.html
然后通过java来截取对应的图片即可完成楼主的功能!
------解决方案--------------------
java截图
Java code
import java.awt.Dimension;   
import java.awt.Rectangle;   
import java.awt.Robot;   
import java.awt.Toolkit;   
import java.awt.image.BufferedImage;   
import java.io.File;   
  
import javax.imageio.ImageIO;   
  
/*******************************************************************************  
 * 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照" This JavaBean is used to snapshot the  
 * GUI in a Java application! You can embeded it in to your java application  
 * source code, and us it to snapshot the right GUI of the application  
 *   
 * @see javax.ImageIO  
 * @author liluqun ([email]liluqun@263.net[/email])  
 * @version 1.0  
 *   
 ******************************************************************************/  
  
class GuiCamera   
{   
    private String fileName; // 文件的前缀   
  
    private String defaultName = "GuiCamera";   
  
    static int serialNum = 0;   
  
    private String imageFormat; // 图像文件的格式   
  
    private String defaultImageFormat = "png";   
  
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();   
  
    /***********************************************************************  
     * 默认的文件前缀为GuiCamera,文件格式为PNG格式 The default construct will use the  
     * default Image file surname "GuiCamera", and default image format  
     * "png"  
     **********************************************************************/  
    public GuiCamera()   
    {   
    fileName = defaultName;   
    imageFormat = defaultImageFormat;   
    }   
  
    /***********************************************************************  
     * @param s  
     *                the surname of the snapshot file  
     * @param format  
     *                the format of the image file, it can be "jpg" or "png"  
     *                本构造支持JPG和PNG文件的存储  
     **********************************************************************/  
    public GuiCamera(String s, String format)   
    {   
    fileName = s;   
    imageFormat = format;   
    }   
  
    /***********************************************************************  
     * 对屏幕进行拍照 snapShot the Gui once  
     **********************************************************************/  
    public void snapShot()   
    {   
    try  
    {   
        // 拷贝屏幕到一个BufferedImage对象screenshot
       //这里 createScreenCapture中的4个参数就是需要截取的图形的2个顶点,也就是通过js确定的2个点
        BufferedImage screenshot = (new Robot())   
            .createScreenCapture(new Rectangle(0, 0,   
                (int) d.getWidth(), (int) d.getHeight()));   
        serialNum++;   
        // 根据文件前缀变量和文件格式变量,自动生成文件名   
        String name = fileName + String.valueOf(serialNum) + "."  
            + imageFormat;   
        File f = new File(name);   
        System.out.print("Save File " + name);   
        // 将screenshot对象写入图像文件   
        ImageIO.write(screenshot, imageFormat, f);   
        System.out.print("..Finished! ");   
    } catch (Exception ex)   
    {   
        System.out.println(ex);   
    }   
    }   
  
    public static void main(String[] args)   
    {   
    GuiCamera cam = new GuiCamera("Test", "png");   
    cam.snapShot();   
    }   
}