#by AdjustTime
-#Mon Jun 27 00:09:43 JST 2016
+#Thu Jun 30 23:11:20 JST 2016
+GPX.BASETIME=EXIF_TIME
+GPX.noFirstNode=ON
GPX.gpxSplit=ON
+IMG.TIME=2016-01-03T15\:14\:04
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.BASE_FILE=S2690002.JPG
IMG.SOURCE_FOLDER=/media/yuu/public/osm/GPXs/\u7DBE\u702C\u5E02\u5409\u5CA1_20160103
-GPX.noFirstNode=ON
-IMG.BASE_FILE=S2690001.JPG
+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
#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
// 出力フォルダ:(変換した画像ファイルと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: <SPEED>を上書き出力する {ON | OFF}
+ public static String GPX_OUTPUT_SPEED = "GPX.OUTPUT_SPEED";
+
File file;
public AppParameters() throws FileNotFoundException, IOException {
}
//------------------------------------------------
+ // 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ログを別の<trkseg>セグメントに分割する。 {ON | OFF}
valueStr = this.getProperty(GPX_GPXSPLIT);
if (valueStr == null) {
update = true;
- this.setProperty(GPX_GPXSPLIT, "ON");
+ this.setProperty(GPX_GPXSPLIT, String.valueOf(true));
}
//------------------------------------------------
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出力: <SPEED>を上書き出力する {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));
}
//------------------------------------------------
*\r
* @param argv\r
* argv[-] = dummy\r
- * argv[0] = 画像ファイルが格納されているディレクトリ\r
- * argv[1] = 時刻補正の基準とする画像ファイル\r
- * argv[2] = 基準画像ファイルの精確な撮影日時 "yyyy-MM-dd'T'HH:mm:ss"\r
- * argv[3] = [noEXIF] EXIF情報の書き換えを行わない / EXIF情報の書き換えを行う(出力先フォルダ)\r
- * argv[4] = 撮影位置をロギングしたGPXファイル\r
+ * argv[0] = 画像ファイルが格納されているディレクトリ --> imgDir\r
+ * argv[1] = 時刻補正の基準とする画像ファイル --> baseFile\r
+ * argv[2] = 基準画像ファイルの精確な撮影日時 "yyyy-MM-dd'T'HH:mm:ss" --> timeStr\r
+ * argv[3] = 出力先フォルダ --> outDir\r
+ * argv[4] = 撮影位置をロギングしたGPXファイル --> gpxDir\r
* \r
* @throws IOException\r
* @throws ImageReadException \r
return;\r
}\r
\r
- // \r
- if (argv[3].toUpperCase().equals("NOEXIF")) {\r
- obj.exif = false;\r
- obj.outDir = null;\r
- }\r
- else {\r
- obj.exif = true;\r
- obj.outDir = new File(argv[3]);\r
- }\r
+ // 出力ファイル\r
+ obj.outDir = new File(argv[3]);\r
\r
// その他のパラメータを読み取る\r
String paramStr = obj.params.getProperty(AppParameters.GPX_GPXSPLIT);\r
- if ((paramStr != null) && (paramStr.toUpperCase().equals("ON"))) {\r
+ if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
obj.param_GpxSplit = true;\r
}\r
\r
paramStr = obj.params.getProperty(AppParameters.GPX_NO_FIRST_NODE);\r
- if ((paramStr != null) && (paramStr.toUpperCase().equals("ON"))) {\r
+ if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
obj.param_GpxNoFirstNode = true;\r
}\r
\r
paramStr = obj.params.getProperty(AppParameters.GPX_REUSE);\r
- if ((paramStr != null) && (paramStr.toUpperCase().equals("ON"))) {\r
+ if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
obj.param_GpxReuse = true;\r
}\r
\r
+ paramStr = obj.params.getProperty(AppParameters.GPX_OUTPUT_SPEED);\r
+ if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
+ obj.param_GpxOutputSpeed = true;\r
+ }\r
+ \r
// 第6引数が指定されなければ、指定されたディレクトリ内のGPXファイルすべてを対象とする\r
if (argv.length >= 5) {\r
obj.gpxDir = new File(argv[4]);\r
}\r
}\r
else {\r
- obj.gpxFiles.add(obj.gpxDir); \r
+ obj.gpxFiles.add(obj.gpxDir);\r
}\r
\r
- System.out.println(" - param: number of gpxFiles = '"+ obj.gpxFiles.size() +"'");\r
System.out.println(" - param: imgDir = '"+ obj.imgDir.getAbsolutePath() +"'");\r
System.out.println(" - param: outDir = '"+ (obj.outDir == null ? "" : obj.outDir.getAbsolutePath()) +"'");\r
+ System.out.println(" - param: gpxDir = '"+ (obj.gpxDir == null ? "" : obj.gpxDir.getAbsolutePath()) +"'");\r
+ System.out.println(" - param: number of gpxFiles = '"+ obj.gpxFiles.size() +"'");\r
System.out.println(" - param: "+ AppParameters.GPX_GPXSPLIT +"="+ obj.param_GpxSplit);\r
System.out.println(" - param: "+ AppParameters.GPX_NO_FIRST_NODE +"="+ obj.param_GpxNoFirstNode); \r
System.out.println(" - param: "+ AppParameters.GPX_REUSE +"="+ obj.param_GpxReuse); \r
System.out.println(" - param: "+ AppParameters.GPX_BASETIME +"="+ obj.params.getProperty(AppParameters.GPX_BASETIME) );\r
- System.out.println(" - param: EXIF convert = '"+ String.valueOf(obj.exif) +"'");\r
- \r
+ System.out.println(" - param: "+ AppParameters.IMG_OUTPUT +"="+ obj.params.getProperty(AppParameters.IMG_OUTPUT)); \r
+ System.out.println(" - param: "+ AppParameters.IMG_OUTPUT_EXIF +"= '"+ String.valueOf(obj.exif) +"'");\r
+ System.out.println(" - param: "+ AppParameters.GPX_OUTPUT_SPEED +"="+ obj.param_GpxOutputSpeed); \r
obj.start();\r
try {\r
obj.join(); \r
public boolean param_GpxSplit = false;\r
public boolean param_GpxNoFirstNode = false;\r
public boolean param_GpxReuse = false;\r
+ public boolean param_GpxOutputSpeed = false;\r
\r
@Override\r
public void run() {\r
JLabel imageLabel; // 基準時刻画像表示
ButtonGroup baseTimeGroup; // 基準時刻の指定グループ
JRadioButton exifBase; // EXIF日時を基準にする/ !(ファイル更新日時を基準にする)
- JRadioButton fupdateBase; // File更新日時を基準にする/ !(XIF日時を基準にする)
+ JRadioButton fupdateBase; // File更新日時を基準にする/ !(EXIF日時を基準にする)
JCheckBox noFirstNode; // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
JCheckBox gpxReuse; // 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
JTextArea textArea; // 実行結果表示領域
ParameterPanelFolder arg1_srcFolder;
ParameterPanelImageFile arg2_baseTimeImg;
ParameterPanel arg3_basetiome;
+ JCheckBox outputIMG; // IMGの変換 する/しない
JCheckBox exifON; // EXIF 書き出しモード / !(EXIFの書き換えはしない)
+ JCheckBox gpxOutputSpeed; // GPXに<SPEED>を書き出す
ParameterPanelFolder arg5_outputFolder; // EXIF 書き出しフォルダ
ParameterPanelFolder arg4_gpxFolder; // GPXファイル・フォルダ
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);
}
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に<SPEED>を書き出す", 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"));
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);
}
/**
+ * 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の<SPPED>を書き換える]を変更した場合のアクション
+ * @param event
+ */
+ void gpxOutputSpeed_Action (ActionEvent event) {
}
/**
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");
}
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();
}