diff --git a/AdjustTime.ini b/AdjustTime.ini index f620d49..979341a 100644 --- a/AdjustTime.ini +++ b/AdjustTime.ini @@ -1,9 +1,11 @@ #by AdjustTime -#Mon Jun 27 00:09:43 JST 2016 -GPX.gpxSplit=ON -GPX.REUSE=ON -IMG.OUTPUT_FOLDER=/media/yuu/public/osm/GPXs/\u7DBE\u702C\u5E02\u5409\u5CA1_20160103 -GPX.BASETIME=2016-01-03T15\:14\:02 -IMG.SOURCE_FOLDER=/media/yuu/public/osm/GPXs/\u7DBE\u702C\u5E02\u5409\u5CA1_20160103 +#Thu Jun 30 23:11:20 JST 2016 +GPX.BASETIME=EXIF_TIME GPX.noFirstNode=ON -IMG.BASE_FILE=S2690001.JPG +GPX.gpxSplit=ON +IMG.TIME=2016-01-03T15\:14\:04 +GPX.REUSE=ON +IMG.BASE_FILE=S2690002.JPG +IMG.SOURCE_FOLDER=/media/yuu/public/osm/GPXs/\u7DBE\u702C\u5E02\u5409\u5CA1_20160103 +GPX.SOURCE_FOLDER=/media/yuu/public/osm/GPXs/\u7DBE\u702C\u5E02\u5409\u5CA1_20160103 +IMG.OUTPUT_FOLDER=/media/yuu/public/osm/GPXs/\u7DBE\u702C\u5E02\u5409\u5CA1_20160103 diff --git a/importPicture/src/AdjustTime.ini b/importPicture/src/AdjustTime.ini index 95624cc..db0677f 100644 --- a/importPicture/src/AdjustTime.ini +++ b/importPicture/src/AdjustTime.ini @@ -1,5 +1,13 @@ #by AdjustTime -#Sun Jun 26 12:44:33 JST 2016 +GPX.BASETIME=EXIF_TIME +IMG.OUTPUT_EXIF=true +GPX.OUTPUT_SPEED=false +GPX.noFirstNode=true +IMG.OUTPUT=false GPX.gpxSplit=ON -GPX.REUSE=OFF -GPX.noFirstNode=ON +IMG.TIME=2016-08-14T11\:45\:47 +GPX.REUSE=false +IMG.BASE_FILE=IMG_0182.jpg +IMG.SOURCE_FOLDER=. +GPX.SOURCE_FOLDER=. +IMG.OUTPUT_FOLDER=. \ No newline at end of file diff --git a/importPicture/src/osm/jp/gpx/AppParameters.java b/importPicture/src/osm/jp/gpx/AppParameters.java index 438b60a..a76726e 100644 --- a/importPicture/src/osm/jp/gpx/AppParameters.java +++ b/importPicture/src/osm/jp/gpx/AppParameters.java @@ -38,6 +38,15 @@ // 出力フォルダ:(変換した画像ファイルとGPXファイルを出力するフォルダ) public static String IMG_OUTPUT_FOLDER = "IMG.OUTPUT_FOLDER"; + // 出力IMG: IMG出力をする {ON | OFF} + public static String IMG_OUTPUT = "IMG.OUTPUT"; + + // 出力IMG: EXIFを変換する + public static String IMG_OUTPUT_EXIF = "IMG.OUTPUT_EXIF"; + + // 出力GPX: を上書き出力する {ON | OFF} + public static String GPX_OUTPUT_SPEED = "GPX.OUTPUT_SPEED"; + File file; public AppParameters() throws FileNotFoundException, IOException { @@ -95,11 +104,27 @@ } //------------------------------------------------ + // IMG出力: IMGを出力する + valueStr = this.getProperty(IMG_OUTPUT); + if (valueStr == null) { + update = true; + this.setProperty(IMG_OUTPUT, String.valueOf(true)); + } + + //------------------------------------------------ + // IMG出力: EXIFを変換する + valueStr = this.getProperty(IMG_OUTPUT_EXIF); + if (valueStr == null) { + update = true; + this.setProperty(IMG_OUTPUT_EXIF, String.valueOf(true)); + } + + //------------------------------------------------ // GPX出力: 時間的に間隔が開いたGPXログを別のセグメントに分割する。 {ON | OFF} valueStr = this.getProperty(GPX_GPXSPLIT); if (valueStr == null) { update = true; - this.setProperty(GPX_GPXSPLIT, "ON"); + this.setProperty(GPX_GPXSPLIT, String.valueOf(true)); } //------------------------------------------------ @@ -107,15 +132,23 @@ valueStr = this.getProperty(GPX_NO_FIRST_NODE); if (valueStr == null) { update = true; - this.setProperty(GPX_NO_FIRST_NODE, "ON"); + this.setProperty(GPX_NO_FIRST_NODE, String.valueOf(true)); } //------------------------------------------------ + // GPX出力: を上書き出力する {ON | OFF} + valueStr = this.getProperty(GPX_OUTPUT_SPEED); + if (valueStr == null) { + update = true; + this.setProperty(GPX_OUTPUT_SPEED, String.valueOf(false)); + } + + //------------------------------------------------ // GPX出力: 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF} valueStr = this.getProperty(GPX_REUSE); if (valueStr == null) { update = true; - this.setProperty(GPX_REUSE, "OFF"); + this.setProperty(GPX_REUSE, String.valueOf(false)); } //------------------------------------------------ diff --git a/importPicture/src/osm/jp/gpx/ImportPicture.java b/importPicture/src/osm/jp/gpx/ImportPicture.java index 028b1d2..c3fa5fc 100644 --- a/importPicture/src/osm/jp/gpx/ImportPicture.java +++ b/importPicture/src/osm/jp/gpx/ImportPicture.java @@ -92,11 +92,11 @@ * * @param argv * argv[-] = dummy - * argv[0] = 画像ファイルが格納されているディレクトリ - * argv[1] = 時刻補正の基準とする画像ファイル - * argv[2] = 基準画像ファイルの精確な撮影日時 "yyyy-MM-dd'T'HH:mm:ss" - * argv[3] = [noEXIF] EXIF情報の書き換えを行わない / EXIF情報の書き換えを行う(出力先フォルダ) - * argv[4] = 撮影位置をロギングしたGPXファイル + * argv[0] = 画像ファイルが格納されているディレクトリ --> imgDir + * argv[1] = 時刻補正の基準とする画像ファイル --> baseFile + * argv[2] = 基準画像ファイルの精確な撮影日時 "yyyy-MM-dd'T'HH:mm:ss" --> timeStr + * argv[3] = 出力先フォルダ --> outDir + * argv[4] = 撮影位置をロギングしたGPXファイル --> gpxDir * * @throws IOException * @throws ImageReadException @@ -158,32 +158,30 @@ return; } - // - if (argv[3].toUpperCase().equals("NOEXIF")) { - obj.exif = false; - obj.outDir = null; - } - else { - obj.exif = true; - obj.outDir = new File(argv[3]); - } + // 出力ファイル + obj.outDir = new File(argv[3]); // その他のパラメータを読み取る String paramStr = obj.params.getProperty(AppParameters.GPX_GPXSPLIT); - if ((paramStr != null) && (paramStr.toUpperCase().equals("ON"))) { + if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) { obj.param_GpxSplit = true; } paramStr = obj.params.getProperty(AppParameters.GPX_NO_FIRST_NODE); - if ((paramStr != null) && (paramStr.toUpperCase().equals("ON"))) { + if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) { obj.param_GpxNoFirstNode = true; } paramStr = obj.params.getProperty(AppParameters.GPX_REUSE); - if ((paramStr != null) && (paramStr.toUpperCase().equals("ON"))) { + if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) { obj.param_GpxReuse = true; } + paramStr = obj.params.getProperty(AppParameters.GPX_OUTPUT_SPEED); + if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) { + obj.param_GpxOutputSpeed = true; + } + // 第6引数が指定されなければ、指定されたディレクトリ内のGPXファイルすべてを対象とする if (argv.length >= 5) { obj.gpxDir = new File(argv[4]); @@ -215,18 +213,20 @@ } } else { - obj.gpxFiles.add(obj.gpxDir); + obj.gpxFiles.add(obj.gpxDir); } - System.out.println(" - param: number of gpxFiles = '"+ obj.gpxFiles.size() +"'"); System.out.println(" - param: imgDir = '"+ obj.imgDir.getAbsolutePath() +"'"); System.out.println(" - param: outDir = '"+ (obj.outDir == null ? "" : obj.outDir.getAbsolutePath()) +"'"); + System.out.println(" - param: gpxDir = '"+ (obj.gpxDir == null ? "" : obj.gpxDir.getAbsolutePath()) +"'"); + System.out.println(" - param: number of gpxFiles = '"+ obj.gpxFiles.size() +"'"); System.out.println(" - param: "+ AppParameters.GPX_GPXSPLIT +"="+ obj.param_GpxSplit); System.out.println(" - param: "+ AppParameters.GPX_NO_FIRST_NODE +"="+ obj.param_GpxNoFirstNode); System.out.println(" - param: "+ AppParameters.GPX_REUSE +"="+ obj.param_GpxReuse); System.out.println(" - param: "+ AppParameters.GPX_BASETIME +"="+ obj.params.getProperty(AppParameters.GPX_BASETIME) ); - System.out.println(" - param: EXIF convert = '"+ String.valueOf(obj.exif) +"'"); - + System.out.println(" - param: "+ AppParameters.IMG_OUTPUT +"="+ obj.params.getProperty(AppParameters.IMG_OUTPUT)); + System.out.println(" - param: "+ AppParameters.IMG_OUTPUT_EXIF +"= '"+ String.valueOf(obj.exif) +"'"); + System.out.println(" - param: "+ AppParameters.GPX_OUTPUT_SPEED +"="+ obj.param_GpxOutputSpeed); obj.start(); try { obj.join(); @@ -244,6 +244,7 @@ public boolean param_GpxSplit = false; public boolean param_GpxNoFirstNode = false; public boolean param_GpxReuse = false; + public boolean param_GpxOutputSpeed = false; @Override public void run() { diff --git a/importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java b/importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java index 39878c0..6a97ebd 100644 --- a/importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java +++ b/importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java @@ -40,7 +40,7 @@ JLabel imageLabel; // 基準時刻画像表示 ButtonGroup baseTimeGroup; // 基準時刻の指定グループ JRadioButton exifBase; // EXIF日時を基準にする/ !(ファイル更新日時を基準にする) - JRadioButton fupdateBase; // File更新日時を基準にする/ !(XIF日時を基準にする) + JRadioButton fupdateBase; // File更新日時を基準にする/ !(EXIF日時を基準にする) JCheckBox noFirstNode; // GPX: セグメントの最初の1ノードは無視する。 {ON | OFF} JCheckBox gpxReuse; // 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF} JTextArea textArea; // 実行結果表示領域 @@ -48,7 +48,9 @@ ParameterPanelFolder arg1_srcFolder; ParameterPanelImageFile arg2_baseTimeImg; ParameterPanel arg3_basetiome; + JCheckBox outputIMG; // IMGの変換 する/しない JCheckBox exifON; // EXIF 書き出しモード / !(EXIFの書き換えはしない) + JCheckBox gpxOutputSpeed; // GPXにを書き出す ParameterPanelFolder arg5_outputFolder; // EXIF 書き出しフォルダ ParameterPanelFolder arg4_gpxFolder; // GPXファイル・フォルダ @@ -112,9 +114,15 @@ selectImage_Action(event); imageView_Action(event); } + else if (object == outputIMG) { + outputIMG_Action(event); + } else if (object == exifON) { exifON_Action(event); } + else if (object == gpxOutputSpeed) { + gpxOutputSpeed_Action(event); + } else if (object == doButton) { doButton_Action(event); } @@ -265,11 +273,19 @@ JPanel tmpPanel5 = new JPanel(); tmpPanel5.setLayout(new BoxLayout(tmpPanel5, BoxLayout.Y_AXIS)); - exifON = new JCheckBox("EXIFの変換をする", false); + outputIMG = new JCheckBox("IMGの変換をする", Boolean.parseBoolean(params.getProperty(AppParameters.IMG_OUTPUT))); + tmpPanel5.add(outputIMG); + + arg5_outputFolder = new ParameterPanelFolder("出力フォルダ: ", params.getProperty(AppParameters.IMG_OUTPUT_FOLDER)); + tmpPanel5.add(arg5_outputFolder); + + exifON = new JCheckBox("EXIFの変換をする", Boolean.parseBoolean(params.getProperty(AppParameters.IMG_OUTPUT_EXIF))); tmpPanel5.add(exifON); - arg5_outputFolder = new ParameterPanelFolder("書き出しフォルダ: ", params.getProperty(AppParameters.IMG_OUTPUT_FOLDER)); - tmpPanel5.add(arg5_outputFolder); + gpxOutputSpeed = new JCheckBox("出力GPXにを書き出す", Boolean.parseBoolean(params.getProperty(AppParameters.GPX_OUTPUT_SPEED))); + gpxOutputSpeed.setEnabled(false); + tmpPanel5.add(gpxOutputSpeed); + cards[cardNo].add(tmpPanel5, BorderLayout.CENTER); doButton = new JButton("処理実行", AdjustTime.createImageIcon("images/media_playback_start.png")); @@ -310,6 +326,7 @@ arg2_baseTimeImg.openButton.addActionListener(lSymAction); doButton.addActionListener(lSymAction); exifON.addActionListener(lSymAction); + gpxOutputSpeed.addActionListener(lSymAction); noFirstNode.addActionListener(lSymAction); gpxReuse.addActionListener(lSymAction); //arg1Panel_4.field.addActionListener(lSymAction); @@ -513,13 +530,27 @@ } /** + * checkbox[IMG変換]を変更した場合のアクション + * ON ー> IMG出力フォルダのフィールドを有効にする + * OFF -> IMG出力フォルダのフィールドを無効にする + * @param event + */ + void outputIMG_Action (ActionEvent event) { + arg5_outputFolder.setEnabled(outputIMG.isEnabled()); + } + + /** * checkbox[EXIF書き出し]を変更した場合のアクション - * ON ー> EXIF変換先フォルダのフィールドを有効にする - * OFF -> EXIF変換先フォルダのフィールドを無効にする * @param event */ void exifON_Action (ActionEvent event) { - arg5_outputFolder.setEnabled(exifON.isEnabled()); + } + + /** + * checkbox[GPXのを書き換える]を変更した場合のアクション + * @param event + */ + void gpxOutputSpeed_Action (ActionEvent event) { } /** @@ -535,12 +566,13 @@ argv[0] = arg1_srcFolder.getText(); argv[1] = arg2_baseTimeImg.getText(); argv[2] = arg3_basetiome.getText(); - argv[3] = (exifON.isSelected() ? arg5_outputFolder.getText() : "noEXIF"); + argv[3] = arg5_outputFolder.getText(); argv[4] = arg4_gpxFolder.getText(); - this.params.setProperty(AppParameters.GPX_NO_FIRST_NODE, (noFirstNode.isSelected() ? "ON" : "OFF")); - this.params.setProperty(AppParameters.GPX_REUSE, (gpxReuse.isSelected() ? "ON" : "OFF")); + this.params.setProperty(AppParameters.GPX_NO_FIRST_NODE, String.valueOf(noFirstNode.isSelected())); + this.params.setProperty(AppParameters.GPX_REUSE, String.valueOf(gpxReuse.isSelected())); this.params.setProperty(AppParameters.GPX_SOURCE_FOLDER, arg4_gpxFolder.getText()); + if (exifBase.isSelected()) { this.params.setProperty(AppParameters.GPX_BASETIME, "EXIF_TIME"); } @@ -550,7 +582,10 @@ this.params.setProperty(AppParameters.IMG_SOURCE_FOLDER, arg1_srcFolder.getText()); this.params.setProperty(AppParameters.IMG_BASE_FILE, arg2_baseTimeImg.getText()); this.params.setProperty(AppParameters.IMG_TIME, arg3_basetiome.getText()); - this.params.setProperty(AppParameters.IMG_OUTPUT_FOLDER, arg4_gpxFolder.getText()); + this.params.setProperty(AppParameters.IMG_OUTPUT, String.valueOf(outputIMG.isSelected())); + this.params.setProperty(AppParameters.IMG_OUTPUT_FOLDER, arg5_outputFolder.getText()); + this.params.setProperty(AppParameters.IMG_OUTPUT_EXIF, String.valueOf(exifON.isSelected())); + this.params.setProperty(AppParameters.GPX_OUTPUT_SPEED, String.valueOf(gpxOutputSpeed.isSelected())); try { this.params.store(); }