From f02c19e24f539e4247e2e4899281f44fc7c21229 Mon Sep 17 00:00:00 2001 From: hayashi Date: Sat, 22 Jul 2017 16:44:50 +0900 Subject: [PATCH] =?utf8?q?green:=20=E8=BB=BD=E3=81=84=E3=83=AA=E3=83=95?= =?utf8?q?=E3=82=A1=E3=82=AF=E3=82=BF=E3=83=AA=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- importPicture/src/osm/jp/gpx/ImportPicture.java | 55 +++++++++++++++---------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/importPicture/src/osm/jp/gpx/ImportPicture.java b/importPicture/src/osm/jp/gpx/ImportPicture.java index 7d41feb..aeeab0d 100644 --- a/importPicture/src/osm/jp/gpx/ImportPicture.java +++ b/importPicture/src/osm/jp/gpx/ImportPicture.java @@ -113,11 +113,12 @@ public class ImportPicture extends Thread { */ public static void main(String[] argv) throws Exception { - Date imgtime; String paramFilePath = ((argv.length < 1) ? AppParameters.FILE_PATH : argv[0]); System.out.println("Param File = '"+ paramFilePath +"'"); ImportPicture obj = new ImportPicture(); + + Date imgtime; obj.params = new AppParameters(paramFilePath); System.out.println(" - param: "+ AppParameters.IMG_TIME +"="+ obj.params.getProperty(AppParameters.IMG_TIME) ); @@ -145,26 +146,7 @@ public class ImportPicture extends Thread { // 基準時刻ファイルの「更新日時」を使って時刻合わせを行う。 // argv[1] --> AppParameters.IMG_BASE_FILE に置き換え - File baseFile = new File(obj.imgDir, obj.params.getProperty(AppParameters.IMG_BASE_FILE)); - if (obj.exifBase) { - ImageMetadata meta = Imaging.getMetadata(baseFile); - JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta; - if (jpegMetadata == null) { - System.out.println("'"+ baseFile.getAbsolutePath() +"' にEXIF情報がありません"); - return; - } - TiffImageMetadata exif = jpegMetadata.getExif(); - if (exif == null) { - System.out.println("'"+ baseFile.getAbsolutePath() +"' にEXIF情報がありません"); - return; - } - String dateTimeOriginal = exif.getFieldValue(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL)[0]; - long lastModifyTime = ImportPicture.toEXIFDate(dateTimeOriginal).getTime(); - imgtime = new Date(lastModifyTime); - } - else { - imgtime = new Date(baseFile.lastModified()); - } + imgtime = obj.adjustTime(new File(obj.imgDir, obj.params.getProperty(AppParameters.IMG_BASE_FILE))); // 出力ファイル // argv[3] --> AppParameters.IMG_OUTPUT に置き換え @@ -296,7 +278,11 @@ public class ImportPicture extends Thread { public static final String TIME_FORMAT_STRING = "yyyy-MM-dd'T'HH:mm:ss'Z'"; private static final String EXIF_DATE_TIME_FORMAT_STRING = "yyyy:MM:dd HH:mm:ss"; - + + public void setUp() { + + } + @Override public void run() { /** @@ -633,6 +619,31 @@ public class ImportPicture extends Thread { } } + + // 基準時刻ファイルの「更新日時」を使って時刻合わせを行う。 + // argv[1] --> AppParameters.IMG_BASE_FILE に置き換え + // File baseFile = new File(obj.imgDir, obj.params.getProperty(AppParameters.IMG_BASE_FILE)); + private Date adjustTime(File baseFile) throws ImageReadException, IOException, ParseException { + if (exifBase) { + ImageMetadata meta = Imaging.getMetadata(baseFile); + JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta; + if (jpegMetadata == null) { + System.out.println("'"+ baseFile.getAbsolutePath() +"' にEXIF情報がありません"); + return null; + } + TiffImageMetadata exif = jpegMetadata.getExif(); + if (exif == null) { + System.out.println("'"+ baseFile.getAbsolutePath() +"' にEXIF情報がありません"); + return null; + } + String dateTimeOriginal = exif.getFieldValue(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL)[0]; + return new Date(ImportPicture.toEXIFDate(dateTimeOriginal).getTime()); + } + else { + return new Date(baseFile.lastModified()); + } + } + /** * 対象は '*.JPG' のみ対象とする -- 2.11.0