java判断传进来的是否是图片

 

 

public static void main(String[] args) throws IOException {
        String filePath = "C:\\Users\\80975\\Desktop/1.png";
        File file = new File(filePath);
        ImageInputStream iis = ImageIO.createImageInputStream(file);
        Iterator iter = ImageIO.getImageReaders(iis);
        if (!iter.hasNext()) {//文件不是图片 
            System.out.println("此文件不为图片文件");
        }else {
            System.out.println("是");
        }

        BufferedImage bi = ImageIO.read(file);

        if(bi == null){ 
            System.out.println("此文件不为图片文件");
        }else {
            System.out.println("是");
        }
    }

 

 

使用ImageIO 判断图片宽高

 

 

public static boolean isImage(InputStream inputStream) {
        if (inputStream == null) {
            return false;
        }
        Image img;
        try {
            img = ImageIO.read(inputStream);
            return !(img == null || img.getWidth(null) <= 0 || img.getHeight(null) <= 0);
        } catch (Exception e) {
            return false;
        }
    }

 

 

判断文件头信息

 

 public static String getImageType(File srcFilePath) {
        FileInputStream imgFile;
        byte[] b = new byte[10];
        int l = -1;
        try {
            imgFile = new FileInputStream(srcFilePath);
            l = imgFile.read(b);
            imgFile.close();
        } catch (Exception e) {
            return null;
        }
        if (l == 10) {
            byte b0 = b[0];
            byte b1 = b[1];
            byte b2 = b[2];
            byte b3 = b[3];
            byte b6 = b[6];
            byte b7 = b[7];
            byte b8 = b[8];
            byte b9 = b[9];
            if (b0 == (byte) 'G' && b1 == (byte) 'I' && b2 == (byte) 'F') {
                return "gif";
            } else if (b1 == (byte) 'P' && b2 == (byte) 'N' && b3 == (byte) 'G') {
                return "png";
            } else if (b6 == (byte) 'J' && b7 == (byte) 'F' && b8 == (byte) 'I' && b9 == (byte) 'F') {
                return "jpg";
            } else {
                return null;
            }
        } else {
            return null;
        }
    }

 

posted @ 2019-02-20 09:34  这个名字想了很久~  阅读(6040)  评论(0编辑  收藏  举报