java获得图片的输入流,java 根据输入流检查图片格式

/**

* File extensions.

*/

private static final String[] FILE_EXTS = {"JPG", "PNG", "GIF"};

/**

* Magic bytes in a file with above extension.

*/

private static final byte[][] FILE_MAGS = new byte[][] {

new byte[] {(byte)0xFF, (byte)0xD8, (byte)0xFF, (byte)0xE0}, //JPG

new byte[] {(byte)0x89, (byte)0x50, (byte)0x4E, (byte)0x47}, //PNG

new byte[] {(byte)0x47, (byte)0x49, (byte)0x46, (byte)0x38} //GIF

};

/**

* Get file format from file name.

* @param fileName file name

* @return file format, null if unsupported.

*/

public static String getFileFormat(String fileName) {

int dp = fileName.lastIndexOf(".");

if (dp == -1) return null;

String ext = fileName.substring(dp + 1).toUpperCase();

if (ext.equals("JPEG")) ext = "JPG"; //JPEG is JPG

if (ArrayUtils.indexOf(FILE_EXTS, ext) == -1) return null;

return ext;

}

/**

* Get file format by contents.

* @param contents file contents

* @return file format, null if unsupported.

*/

public static String getFileFormat(byte[] contents) {

for (int i = 0; i < FILE_MAGS.length; i++) {

byte[] mag = FILE_MAGS[i];

if (contents.length >= mag.length) {

if (Arrays.equals(Arrays.copyOf(contents, mag.length), mag)) {

return FILE_EXTS[i];

}

}

}

return null;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值