日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

积跬步,聚小流------java获取图片的尺寸

發(fā)布時間:2023/12/13 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 积跬步,聚小流------java获取图片的尺寸 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在一篇文章中獲取到通過例如以下兩種方式進(jìn)行獲取:

1、使用ImageReader進(jìn)行獲取;

2、使用BufferedImage進(jìn)行獲取;

而且經(jīng)過驗證ImageReader進(jìn)行操作的耗時遠(yuǎn)遠(yuǎn)低于BufferedImage操作的耗時,詳情可查看鏈接查看原文

然后依據(jù)應(yīng)用我自己在項目中略做修改,在這里記錄下:

<span style="font-size:14px;">package com.jzba.utils;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;

//獲取圖片的長寬尺寸
public class ImageUtil {

    /**
     * 源圖片路徑名稱如:D:/zz/over.png
     */
    private String srcpath = "D:/zz/over.png";

    public ImageUtil() {

    }
    //進(jìn)行本地驗證
    public static void main(String[] args) throws Exception {
        ImageUtil util = new ImageUtil();
        util.getImageSizeByBufferedImage(util.getSrcpath());
    }
    //依據(jù)圖片路徑獲取對應(yīng)圖片的尺寸
    public Map getSize(String srcPath){
    	ImageUtil util = new ImageUtil();
    	Map<String, Integer> map=util.getImageSizeByBufferedImage(util.getSrcpath());
    	return map;
    }

    /**
     * 使用ImageReader獲取圖片尺寸
     * 
     * @param src
     *            源圖片路徑
     */
    public void getImageSizeByImageReader(String src) {
        long beginTime = new Date().getTime();
        File file = new File(src);
        try {
            Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("jpg");
            ImageReader reader = (ImageReader) readers.next();
            ImageInputStream iis = ImageIO.createImageInputStream(file);
            reader.setInput(iis, true);
//          System.out.println("" + reader.getWidth(0));
//          System.out.println("height:" + reader.getHeight(0));
        } catch (IOException e) {
            e.printStackTrace();
        }
        long endTime = new Date().getTime();
//      System.out.println("使用[ImageReader]獲取圖片尺寸耗時:[" + (endTime - beginTime)+"]ms");
    }

//    /**
//     * 使用BufferedImage獲取圖片尺寸
//     * 
//     * @param src
//     *            源圖片路徑
//     */
//    public void getImageSizeByBufferedImage(String src) {
//        long beginTime = new Date().getTime();
//        File file = new File(src);
//        FileInputStream is = null;
//        try {
//            is = new FileInputStream(file);
//        } catch (FileNotFoundException e2) {
//            e2.printStackTrace();
//        }
//        BufferedImage sourceImg = null;
//        try {
//            sourceImg = javax.imageio.ImageIO.read(is);
//            System.out.println("" + sourceImg.getWidth());
//            System.out.println("height:" + sourceImg.getHeight());
//        } catch (IOException e1) {
//            e1.printStackTrace();
//        }
//        long endTime = new Date().getTime();
//        System.out.println("使用[BufferedImage]獲取圖片尺寸耗時:[" + (endTime - beginTime)+"]ms");
//    }
    
    /**
     * 使用BufferedImage獲取圖片尺寸
     * @return Map<String,Integer> 返回map集合。包括長和寬
     * @param src
     *            源圖片路徑
     */
    public 	Map<String,Integer> getImageSizeByBufferedImage(String src) {
        File file = new File(src);
        FileInputStream is = null;
        Map<String,Integer> map=new HashMap<String, Integer>();
        try {
            is = new FileInputStream(file);
        } catch (FileNotFoundException e2) {
            e2.printStackTrace();
        }
        BufferedImage sourceImg = null;
        try {
            sourceImg = javax.imageio.ImageIO.read(is);
            map.put("width", sourceImg.getWidth());
            map.put("height", sourceImg.getHeight());
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        return map;
    }

    public String getSrcpath() {
        return srcpath;
    }

    public void setSrcpath(String srcpath) {
        this.srcpath = srcpath;
    }

}</span>

依據(jù)以上方法,假設(shè)在方法中增加對應(yīng)的System.out.println();則能夠獲得一下結(jié)果:


總結(jié)

以上是生活随笔為你收集整理的积跬步,聚小流------java获取图片的尺寸的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。