java代码判断图片文件格式,不是根据文件后缀来判断。

您所在的位置:网站首页 java获取文件格式 java代码判断图片文件格式,不是根据文件后缀来判断。

java代码判断图片文件格式,不是根据文件后缀来判断。

2023-04-09 10:07| 来源: 网络整理| 查看: 265

public static final String TYPE_JPG = "jpg"; public static final String TYPE_GIF = "gif"; public static final String TYPE_PNG = "png"; public static final String TYPE_BMP = "bmp"; public static final String TYPE_UNKNOWN = "unknown"; /** * byte数组转换成16进制字符串 * @param src * @return */ public static String bytesToHexString(byte[] src){ StringBuilder stringBuilder = new StringBuilder(); if (src == null || src.length ) { return null; } for (int i = 0; i ) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() ) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } /** * 根据文件流判断图片类型 * @param fis * @return jpg/png/gif/bmp */ public static String getPicType(FileInputStream fis) { //读取文件的前几个字节来判断图片格式 byte[] b = new byte[4]; try { fis.read(b, 0, b.length); String type = bytesToHexString(b).toUpperCase(); if (type.contains("FFD8FF")) { return TYPE_JPG; } else if (type.contains("89504E47")) { return TYPE_PNG; } else if (type.contains("47494638")) { return TYPE_GIF; } else if (type.contains("424D")) { return TYPE_BMP; }else{ return TYPE_UNKNOWN; } } catch (IOException e) { e.printStackTrace(); }finally{ if(fis != null){ try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; } //test code System.out.println("图片格式1: " + getPicType(new FileInputStream(new File("D:\\3_副本.png")))); System.out.println("图片格式2: " + getPicType(new FileInputStream(new File("D:\\3.png"))));

java代码判断图片文件格式, 不是根据文件后缀来判断。,,

java代码判断图片文件格式, 不是根据文件后缀来判断。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3