<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 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

    主站蜘蛛池模板: 国产精品青草久久久久福利99| 国产精品嫩草影院一二三区| 欧美精品一本久久男人的天堂| 成人精品综合免费视频| 国产叼嘿久久精品久久| 精品少妇无码AV无码专区| 日韩精品无码Av一区二区 | 国产精品无码AV一区二区三区| 久热精品视频第一页| 91精品国产成人网在线观看| 国产精品女同久久久久电影院| 永久免费精品影视网站| 狠狠精品干练久久久无码中文字幕| 久久99国产精品99久久 | 中文精品久久久久人妻不卡| 国产亚洲精品高清在线| 亚洲国产成人久久精品动漫 | 亚洲AV无码成人精品区蜜桃| 蜜臀av无码人妻精品 | 国产精品久久久久久久久| 无码人妻精品一区二区三区夜夜嗨| 欧美成人精品欧美一级乱黄码| 国产精品最新国产精品第十页| 99精品国产福利在线观看| 精品四虎免费观看国产高清午夜| 成人精品视频一区二区三区| 久久精品国产久精国产思思| 日韩精品专区AV无码| 亚洲无码精品浪潮| 亚洲精品成人区在线观看| 亚洲精品成人片在线观看| 午夜精品久久久久9999高清| 欧美日韩精品久久久久| 久久亚洲AV永久无码精品| 久久久99精品成人片中文字幕 | 99国产精品一区二区| 国产精品美脚玉足脚交欧美| 国产色婷婷五月精品综合在线| 日韩精品久久久久久免费| 日韩精品无码一本二本三本| 久久夜色精品国产噜噜噜亚洲AV|