`

java判断图片文件类型

 
阅读更多

    在工作中遇到了一个将bmp文件转为jpg文件的工作(因为bmp文件太大,后期的处理可能遇到问题,所以转为jpg会有失真,但对我们的程序不会有太大影响。),对于bmp转jpg的话java本身就提供了很好的支持,所以不用过多的关注,如果不知道的话可以看看下面的文章:

地址--http://blog.csdn.net/shixing_11/article/details/5731050

    但是,对于图片的格式通过后缀名判断是不准确的,因为我们可以去手动的更改后缀名,但是文件大小和本质是不会变的,所以要用java对文件进行判断,如果是bmp文件就转成jpg,如果不是直接入库。从网上找了几个方法,试了下下面的好使,不说废话直接上代码(有部分改动,也可以更改之后判断用作上传的是不是图片)。

public static String getImageType(String path) throws IOException {   
        FileInputStream fis = new FileInputStream(path);   
		int leng = fis.available();   
		BufferedInputStream buff = new BufferedInputStream(fis);   
		byte[] mapObj = new byte[leng];   
		buff.read(mapObj, 0, leng);   
			
		String type = "";   
		ByteArrayInputStream bais = null;   
		MemoryCacheImageInputStream mcis = null;   
		try {   
			bais = new ByteArrayInputStream(mapObj);   
		    mcis = new MemoryCacheImageInputStream(bais);   
		   Iterator itr = ImageIO.getImageReaders(mcis);   
		    while (itr.hasNext()) {   
			    ImageReader reader = (ImageReader)  itr.next();   
			    String imageName = reader.getClass().getSimpleName();   
			    if(imageName!=null){
			    	if("GIFImageReader".equals(imageName)){
			    		type = "gif";
			     	}else if("JPEGImageReader".equals(imageName)){
			     		type = "jpg";
			     	}else if("PNGImageReader".equals(imageName)){
			     		type = "png";
			     	}else if("BMPImageReader".equals(imageName)){
			     		type = "bmp";
			     	}else{
			     		type = "noPic";
			     	}
			     }  
		     }   
		}catch (Exception e) {
			type = "noPic";	
		} finally {   
		    if (bais != null) {   
		        try {   
		            bais.close();   
		        } catch (IOException ioe) {   
		        }   
		    }   
		    if (mcis != null) {   
		        try {   
		            mcis.close();   
		        } catch (IOException ioe) {   
		        }   
		    }   
		}   
		return type;   
	}

 

 希望对大家有帮助

 

分享到:
评论

相关推荐

    java-文件工具,可以查看文件类型,文件魔数,可以判断是否是视频文件,音乐文件,图片文件等等

    java文件的工具类,封装了常用的操作,尤其针对文件的实际类型,通过获取文件的byte,来查看文件起始字节的魔数值,通过魔数值来判断文件的类型,工具集合了常用的文件类型对应的魔数,也封装了文件类型的判断方法

    判断文件的真实类型

    有些软件通过改变文件的扩展名隐藏文件的真实类型。例如,有些游戏的音乐和动画其实是标准的MID和AVI文件...现在编写一个程序,使它从一个配置文件中获得字符串与文件类型的对应表,然后判断用户指定的文件的真实类型!

    JAVA 根据Url 接口 获取文件名称和类型

    JAVA 根据Url 接口 获取文件名称和类型,亲测可用。输入参数地址即可。

    判断图片文件的格式

    其中封装的方法可以从本质上判断一个图片的类型,是PNG还是JPG还是BMP或是其它

    Java判断上传图片格式的实例代码

    主要介绍了Java判断上传图片格式的实例代码,在文中给大家提到了Java使用文件头的类型判断上传的文件是否为图片类型,需要的朋友可以参考下

    上传图片前判断文件格式与大小验证文件是不是图片

    验证文件类型,看看所选文件是不是图片: 代码如下: //文件类型: protected bool IsAllowableFileType(string FileName) { //从web.config读取判断文件类型限制 string stringstrFileTypeLimit; string

    SpringBoot文件上传控制及Java 获取和判断文件头信息

    主要介绍了SpringBoot文件上传控制的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    java源码包---java 源码 大量 实例

    摘要:Java源码,文件操作,图片水印  util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...

    JAVA上百实例源码以及开源项目

    摘要:Java源码,文件操作,图片水印  util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...

    java文件、图片上传(表单、Ajax)

    两种提交方式,一种是表单,一种是Ajax(选择图片时直接显示出来、可进行文件类型判断和重命名),附jar,直接eclipse导入就能使用。可以改成收取文件的简单的期末作业。

    java源码包4

    摘要:Java源码,文件操作,图片水印  util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...

    java源码包3

    摘要:Java源码,文件操作,图片水印  util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...

    JAVA上百实例源码以及开源项目源代码

    摘要:Java源码,文件操作,图片水印  util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...

    java源码包2

    摘要:Java源码,文件操作,图片水印  util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    Java开发技术大全(500个源代码).

    HelloNative.java 准备调用C函数的java文件 HelloNative.lib 用VC编译生成的静态库文件 HelloNative.obj 用VB编译生成的目标文件 HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

    一个常用的Java文件操作类FileUtil.java源码下载

    包括其子目录中、将目录中的内容添加到列表、返回文件的URL地址、从文件路径得到文件名、将DOS/Windows格式的路径转换为UNIX/Linux格式的路径、得到文件类型和文件名、得到路径分隔符在文件路径中指定位置后首次出现...

    上传并预览图片

    4 判断图片类型合法性。 5 上传前判断图片尺寸。(js方式,ie下实现。火狐未实现) 6 提供java中将图片以blob形式存入数据库的方法(见src/SaveUserInfoAction.java文件)。 已测试通过,供大家参考。如有疑问或问题,...

    java jdk实列宝典 光盘源代码

    读写Blob数据,blob数据常以二进制形式存储比较大的文件数据,如图片、视频文件等,本文介绍如何往数据库中读写blob数据,BlobData.java; 使用ResultSet更新数据库,UpdateWithResultSet.java; 使用RowSet,....

Global site tag (gtag.js) - Google Analytics