Java处理图片时出现异常

javax.imageio.IIOException: Not a JPEG file: starts with 0x47 0x49

at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method)

at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(Unknown Source)

at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(Unknown Source)

at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(Unknown Source)

at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(Unknown Source)

at com.sun.imageio.plugins.jpeg.JPEGImageReader.getWidth(Unknown Source)

at com.test.filedownloader.ImageHandler.getImageDim(ImageHandler.java:60)

at com.test.filedownloader.ImageHandler.main(ImageHandler.java:96)

Exception in thread "main" java.lang.NullPointerException

at com.test.filedownloader.ImageHandler.getImageDim(ImageHandler.java:70)

at com.test.filedownloader.ImageHandler.main(ImageHandler.java:96)

出现这种错误是因为将gif 图片后缀改成了jpg

解决办法:

根据文件的前面几个字节,判断文件类型

/*

* 判断图片的原始类型 2016-6-27

*/

private String getFileSuffix(final String path) throws IOException {

String result = "";

String hex="";

if (path != null) {

File image=new File(path);

InputStream is = new FileInputStream(image);

byte[] bt = new byte[2];

is.read(bt);

hex=bytesToHexString(bt);

is.close();

if(hex.equals("ffd8")){

result="jpg";

}else if(hex.equals("4749")){

result="gif";

}else if(hex.equals("8950")){

result="png";

}

}

return result;

}

public static String bytesToHexString(byte[] src) {

StringBuilder stringBuilder = new StringBuilder();

if (src == null || src.length <= 0) {

return null;

}

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

int v = src[i] & 0xFF;

String hv = Integer.toHexString(v);

if (hv.length() < 2) {

stringBuilder.append(0);

}

stringBuilder.append(hv);

}

return stringBuilder.toString();

}

java异常处理图片_Java处理图片时出现异常相关推荐

  1. java运行时异常中文_JAVA——运行时异常(RuntimeException)

    Exception中有一个特殊的子类异常RuntimeException运行时异常. 如果在函数内抛出该异常,函数上可以不用声明,编译一样通过. 如果在函数上声明了该异常.调用者可以不用进行处理.编译 ...

  2. 解释java程序中的异常机制_Java编程中的异常机制

    本文旨在以初学者的角度来学习Java异常的知识,尽量简单,一些细枝末节的知识不会讲述,但不影响对知识的掌握. (比如try-catch可以嵌套,不太会这么用) 1.什么是异常 我们先举个例子 int ...

  3. java异常处理机制_Java编程中的异常机制

    本文旨在以初学者的角度来学习Java异常的知识,尽量简单,一些细枝末节的知识不会讲述,但不影响对知识的掌握. (比如try-catch可以嵌套,不太会这么用) 1.什么是异常 我们先举个例子 int ...

  4. java exception用法_Java基础回顾_Exception异常使用详解

    package 内部类异常包装器; public class 异常 { /** * 1.异常: * 有Error和Exception两个基本子类 * 2.Error: * Error表示恢复不是不可能 ...

  5. java 线程崩溃_java语言中application异常退出和线程异常崩溃的捕获方法,并且在捕获的钩子方法中进行异常处理...

    1.application应用程序注入自定义钩子程序 java语言本身提供一个很好的Runtime类,可以使我们很好的获取运行时信息.其中有一个方法是 public void addShutdownH ...

  6. java异常类_java中常见的异常类

    展开全部 从异常类的继承架构图中可以看出:Exception 类扩展出数个子类,其中 IOException.RunntimeException 是较常用的两种. 习惯上将 Error 与 Excep ...

  7. java 图片背景色_java处理图片背景颜色的方法

    今天老师想让我帮忙把她们200多张寸照换成白底的,这些寸照里面多为蓝色底,红色底. 用ps?不!用java!! 对,我第一反应就是用java,到网上找到了一个获得图片像素的源码.动手改了下,就编出来了 ...

  8. java 图片 背景_java处理图片背景颜色的方法

    今天老师想让我帮忙把她们200多张寸照换成白底的,这些寸照里面多为蓝色底,红色底. 用ps?不!用java!! 对,我第一反应就是用java,到网上找到了一个获得图片像素的源码.动手改了下,就编出来了 ...

  9. java mysql nullpointerexception_jsp连接MySQL时出现异常java.lang.NullPointerException

    展开全部 NullPointerException是可能性最多的异常了,你应该贴代码Connection conn = null; try { String driver = "com.my ...

最新文章

  1. SpringMVC接收ajax请求并回传json数据,配置的步骤及问题解决。No converter found for type ArrayList with Content-Type null
  2. 【数组】 - 有序数组设计
  3. 使用 C++ 处理 JSON 数据交换格式
  4. asp.net页面绑定数据的方式-----未完待续
  5. vs2019Linux守护,Visual Studio 2019将支援Ninja显着提升Linux专案建置效率
  6. 余世维台湾经典讲座--管理者的EQ(一)
  7. 小米12 Ultra将搭载5倍潜望镜头:自研技术加持 成像相对更好
  8. 浏览器的工作原理整理
  9. JSP技术-01-语法及运行原理
  10. VBS中转换二进制数据为字符串常用办法
  11. 中国大学MOOC 视频字幕获取及处理方法
  12. 【python】py课上机作业3「谢尔宾斯基三角形」「递归输出列表」
  13. 用C语言多线程描述哲学家,并行程序设计-哲学家就餐问题
  14. SQL 关于时区的处理案例
  15. 大数据BI可视化应用介绍
  16. CAD小问题解决办法1
  17. VBA AutoExec 宏
  18. 魔兽世界一个服务器发邮件给,今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看...
  19. sql 用户定义函数自动生成自增长ID
  20. python实现简单的图书管理系统

热门文章

  1. php mysql log文件,mysql log文件【读书笔记1】_MySQL
  2. python最新功能_Python在2020的新增功能:第1部分
  3. centos将某一目录权限给用户_CentOS账号和权限的管理,指定用户目录权限
  4. 应用程序的并行配置不正确_阿里架构师:天天高并发,达不到百万以上并发都不叫高并发...
  5. php汉字转换拼音,PHP汉字转换拼音的函数代码
  6. for循环10000次花多长时间_我的三菱FX PLC学习之子程序调用与循环
  7. python源码精要(10)-python源代码阅读概要(1)
  8. erlang精要(4)-等于与不等于
  9. 【机器学习】一文全览机器学习建模流程(Python代码)
  10. 【推荐】新冠肺炎的最新数据集和可视化和预测分析(附代码)