android判断图片类型 判断文件是否为图片文件
发布时间:2017-03-15
来源:服务器之家
判断文件是否为图片,仅通过后缀名判断很不全面,如果把一个txt文件后缀改成gif都会被认为是图片,通过java可以判断文件本身是否为图片。
Java可以用下面代码实现判断。
private boolean isImage(File file)
{
boolean flag = false;
try
{
ImageInputStream is = ImageIO.createImageInputStream(file);
if(null == is)
{
return flag;
}
is.close();
flag = true;
} catch (Exception e)
{
//e.printStackTrace();
}
return flag;
}
调用:
public static void main(String[] args)
{
F f = new F();
File file = new File("D:/java_workspace/LRVODPortal/WebRoot/yishijie/images/lws.txt");
System.out.println(f.isImage(file));
}
注:android的SDK中并没有提供ImageInputStream和ImageIO方法。
在android中的实现方式有很多中,我们现在先暂时使用下面的两个方法实现:
一:用Drawable方法实现:
Drawable drawable = Drawable.createFromPath(path);
if(drawable == null){
Toast.makeText(this, "图片格式错误!", 0).show();
return;
}
原理:把路径path传进Drawable.createFromPath()中,如果传进去的是正确图片路径,将会在本方法内部实现转换,并正确转换成Drawable资源,如果传进去的路径不是图片资源路径,将返回空(NULL),这样就可以根据返回值判断一个文件是否是图片,极大的方便了我们的开发。
二:用Bitmap方法实现:
Bitmap drawable2 = BitmapFactory.decodeFile(path);
if(drawable == null){
Toast.makeText(this, "图片格式错误!", 0).show();
return;
}
原理:把路径path传进BitmapFactory.decodeFile()中,如果传进去的是正确图片路径,将会在本方法内部实现转换,并正确转换成Bitmap资源,如果传进去的路径不是图片资源路径,将返回空(NULL),这样就可以根据返回值判断一个文件是否是图片,极大的方便了我们的开发。