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 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 @@ // 基準時刻ファイルの「更新日時」を使って時刻合わせを行う。 // 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 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 @@ } } + + // 基準時刻ファイルの「更新日時」を使って時刻合わせを行う。 + // 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' のみ対象とする