中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      java實現縮略圖和抓屏幕

      時間:2024-09-09 15:42:09 JAVA認證 我要投稿
      • 相關推薦

      java實現縮略圖和抓屏幕

        在全球范圍內,SUN公司的Java技術培訓和認證不僅是Java開發技術領域最權威的認證,同時也是開發類認證中很重要的一種.以下是小編整理的關于java實現縮略圖和抓屏幕,希望大家認真閱讀!

        import java.awt.Container;

        import java.awt.Dimension;

        import java.awt.Graphics2D;

        import java.awt.Image;

        import java.awt.MediaTracker;

        import java.awt.Rectangle;

        import java.awt.RenderingHints;

        import java.awt.Robot;

        import java.awt.Toolkit;

        import java.awt.image.BufferedImage;

        import java.io.BufferedOutputStream;

        import java.io.File;

        import java.io.FileOutputStream;

        import javax.imageio.ImageIO;

        import com.sun.image.codec.jpeg.JPEGCodec;

        import com.sun.image.codec.jpeg.JPEGEncodeParam;

        import com.sun.image.codec.jpeg.JPEGImageEncoder;

        /**

        *

        * 純java API實現圖片處理

        *

        Title:ImageChangeSize

        *

        Description:

        *

        Copyright: Copyright (c) 2010

        *

        Company:

        * @author

        * @version 1.0.0

        */

        public class ImageChangeSize

        {

        public static void main ( String [] args )

        throws InterruptedException

        {

        //測試生成縮略圖

        createThumbnail("c:\555.gif", 200, 200, 100, "c:\uuuu.jpg");

        //測試捕捉屏幕,每隔一秒捕獲一次

        String path = "c:\screen\";

        int i = 0;

        for ( ;; )

        {

        i++;

        String filepath = path + i + ".jpg";

        snatchScreen(filepath);

        Thread.currentThread().sleep(2000);

        }

        }

        /**

        * 處理圖片,改變起大小,可進行縮略和放大

        * @param filename 源文件名稱

        * @param thumbWidth 處理后寬度

        * @param thumbHeight 處理后高度

        * @param quality 品質 最高100,最小0

        * @param outFilename 輸出文件名稱

        */

        public static void createThumbnail ( String filename, int thumbWidth, int thumbHeight, int quality, String outFilename )

        {

        Image image = Toolkit.getDefaultToolkit().getImage(filename);

        MediaTracker mediaTracker = new MediaTracker(new Container());

        mediaTracker.addImage(image, 0);

        try

        {

        mediaTracker.waitForID(0);

        double thumbRatio = (double) thumbWidth / (double) thumbHeight;

        int imageWidth = image.getWidth(null);

        int imageHeight = image.getHeight(null);

        double imageRatio = (double) imageWidth / (double) imageHeight;

        if ( thumbRatio < imageRatio )

        {

        thumbHeight = (int) ( thumbWidth / imageRatio );

        }

        else

        {

        thumbWidth = (int) ( thumbHeight * imageRatio );

        }

        BufferedImage thumbImage = new BufferedImage(thumbWidth,

        thumbHeight, BufferedImage.TYPE_INT_RGB);

        Graphics2D graphics2D = thumbImage.createGraphics();

        graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

        graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);

        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));

        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);

        quality = Math.max(0, Math.min(quality, 100));

        param.setQuality((float) quality / 100.0f, false);

        encoder.setJPEGEncodeParam(param);

        encoder.encode(thumbImage);

        out.close();

        }

        catch ( Exception e )

        {

        e.printStackTrace();

        }

        }

        /**

        * 抓取電腦屏幕

        * @param path

        */

        public static void snatchScreen ( String path )

        {

        Robot robot;

        try

        {

        robot = new Robot();

        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

        Rectangle rect = new Rectangle(0, 0, d.width, d.height);

        BufferedImage image = robot.createScreenCapture(rect);

        ImageIO.write(image, "jpg", new File(path));

        }

        catch ( Exception e )

        {

        System.out.println("Failed to snatch screen ... ");

        e.printStackTrace();

        }

        }

        }

      【java實現縮略圖和抓屏幕】相關文章:

      Java語言的特點和實現機制10-01

      實現鼠標畫圖的Java程序06-22

      Java多線程的實現方式07-08

      Java動態代理實現AOP的方法07-22

      Java如何實現簡單的whois查詢09-21

      Java byte[]轉int如何實現05-24

      使用JavaScript實現Java的List功能10-26

      java實現web服務器的方法10-14

      Java認證輔導:Java實現二叉樹遍歷算法10-21

      Java和PHP的區別08-21

      主站蜘蛛池模板: 国产精选一区二区三区| 一级无码啪啪| 欧洲国产成人精品91铁牛tv| 精品中文字幕一二三四区人妻| 牙克石市| 射阳县| 亚洲国产一区二区精品在线观看 | 欧美黑人xxxx性高清版| 在线成人tv天堂中文字幕| 张家川| 96精品免费视频大全| 久久国产精品99精品国产987| 国产九色蝌蚪91av在线观看| 亚洲传媒av一区二区三区| 高清专区一区二区中文字幕| 岛国av网站在线播放| 久久亚洲第一视频黄色| 国产精品无码不卡在线播放| 洞口县| 吉水县| 延吉市| 海城市| 日本视频一区二区三区免费观看| 红安县| 临海市| 国产高潮自拍视频在线观看| 亚洲免费视频一区二区三区| av免费一区二区三区不卡| 少妇久久久被弄到高潮| 亚洲午夜无码视频在线播放| 亚洲色图在线视频免费观看| 日韩人妻无码精品系列专区无遮| 历史| 国产91在线|亚洲| 杨幂国产精品一区二区| 亚洲欧美成人中文在线网站| 五月婷婷久久中文字幕| 中文字幕亚洲乱码熟女在线| 亚洲熟妇中文字幕五十av| 国产一级片内射在线视频| 91精品人妻一区二区三区蜜臀|