0
수정 된 값으로 태그를 다시 추가하려면 태그를 제거하려고합니다. 문제의 exif 태그는 다음과 같습니다 : GPSImgDirection하지만 새 값을 저장하지 않는 것 같습니다 (태그를 제거하거나 찾지 않는 것으로 짐작합니다)GPS 태그 값 바꾸기 [편집 EXIF]
정확하게 무엇을 잘못하고 있습니까? 나는 아파치 (WriteExifMetadataExample.java)에서 예제 파일을 따라 가려고 노력했다.
P. 는 "GPS"디렉토리에 있기 때문에 내가 필요
public static void setBearing(File f, Double bearing)
throws IOException, ImageReadException, ImageWriteException{
try (FileOutputStream fos = new FileOutputStream(f.getParent()+ File.separator+"SUPERTMPDUMP12324231.jpg",false);
OutputStream os = new BufferedOutputStream(fos);) {
TiffOutputSet outputSet = null;
final ImageMetadata metadata = Imaging.getMetadata(new File(f.getAbsolutePath()));
final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
if (null != jpegMetadata) {
final TiffImageMetadata exif = jpegMetadata.getExif();
if (null != exif) {
outputSet = exif.getOutputSet();
}
}
if (null == outputSet) {
outputSet = new TiffOutputSet();
}
Rational r = new Rational(bearing);
final TiffOutputDirectory exifDirectory = outputSet.getOrCreateExifDirectory();
exifDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION);
exifDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION, new RationalNumber(454349, 10000));
new ExifRewriter().updateExifMetadataLossless(f, os,
outputSet);
//Replace file with new meta data
Files.move(Paths.get(f.getPath()+ File.separator+"SUPERTMPDUMP12324231.jpg"), Paths.get(f.getAbsolutePath()), StandardCopyOption.REPLACE_EXISTING);
}
}