修改图片exif信息出现类转换异常

qq_22996639 2015-09-06 09:44:52
InputStream fip = new BufferedInputStream(new FileInputStream("D://nozip//2.jpg")); // No need to buffer
10. LLJTran llj = new LLJTran(fip);
11. try {
12. llj.read(LLJTran.READ_INFO, true);
13. } catch (LLJTranException e) {
14. e.printStackTrace();
15. }
16.
17. Exif exif = (Exif) llj.getImageInfo();
18.
19. /* Set some values directly to gps IFD */
20.
21. Entry e;
22.
23. // Set Latitude
24. e = new Entry(Exif.ASCII);
25. e.setValue(0, 'N');
26. exif.setTagValue(Exif.GPSLatitudeRef,-1, e, true);
27.
28. //设置具体的精度
29. e = new Entry(Exif.RATIONAL);
30. e.setValue(0, new Rational(31, 1));
31. e.setValue(1, new Rational(21, 1));
32. e.setValue(2, new Rational(323, 1));
33. exif.setTagValue(Exif.GPSLatitude,-1, e, true);
34.
35. // Set Longitude
36. e = new Entry(Exif.ASCII);
37. e.setValue(0, 'E');
38. exif.setTagValue(Exif.GPSLongitudeRef,-1, e, true);
39.
40. //设置具体的纬度
41. e = new Entry(Exif.RATIONAL);
42. e.setValue(0, new Rational(120, 1));
43. e.setValue(1, new Rational(58, 1));
44. e.setValue(2, new Rational(531, 1));
45. exif.setTagValue(Exif.GPSLongitude,-1, e, true);
46.
47. llj.refreshAppx(); // Recreate Marker Data for changes done
48.
49. //改写后的文件,文件必须存在
50. OutputStream out = new BufferedOutputStream(new FileOutputStream("D://nozip//1.jpg"));
51.
52. // Transfer remaining of image to output with new header.
53. llj.xferInfo(null, out, LLJTran.REPLACE, LLJTran.REPLACE);
54.
55. fip.close();
56. out.close();
57.
58. llj.freeMemory();
...全文
249 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kinsland 2017-10-25
  • 打赏
  • 举报
回复
引用 1 楼 liufeng19900317 的回复:
https://github.com/CodeFromBicycleWarrior/PhotoEXIF
这里说的是对于原照片的修改,我想请教下,能不能对完全没有exif信息的图片进行写入全新的exif信息呢?
Kinsland 2017-10-25
  • 打赏
  • 举报
回复
引用 1 楼 liufeng19900317 的回复:
https://github.com/CodeFromBicycleWarrior/PhotoEXIF
因为用的是eclipse,所以还需要导入后设置jdk1.5,还有把项目设置成UTF-8,不然中文都是乱码。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧