From 0255217dcf2ce584970e6900180d35f39661536b Mon Sep 17 00:00:00 2001 From: yuuhayashi Date: Sun, 7 Jun 2015 10:22:27 +0900 Subject: [PATCH] =?utf8?q?ver2:=20EXIF=E3=81=AE=E6=9B=B8=E3=81=8D=E6=8F=9B?= =?utf8?q?=E3=81=88=E6=A9=9F=E8=83=BD=E3=82=92=E3=82=B5=E3=83=9D=E3=83=BC?= =?utf8?q?=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- importPicture/.classpath | 1 + importPicture/AdjustTime.bat | 1 - importPicture/AdjustTime.sh | 2 +- importPicture/build.xml | 11 +- importPicture/src/AdjustTime.bat | 1 + importPicture/src/AdjustTime.sh | 1 + importPicture/{ => src}/LICENSE.txt | 0 importPicture/{ => src}/README.jp.txt | 0 importPicture/src/osm/jp/gpx/ImportPicture.java | 200 ++++++++++++++++++--- importPicture/src/osm/jp/gpx/YuuLogFormatter.java | 47 +++++ .../src/osm/jp/gpx/matchtime/gui/AdjustTime.java | 19 +- .../gpx/matchtime/gui/ParameterPanelSelecter.java | 44 +++++ 12 files changed, 291 insertions(+), 36 deletions(-) delete mode 100644 importPicture/AdjustTime.bat create mode 100644 importPicture/src/AdjustTime.bat create mode 100644 importPicture/src/AdjustTime.sh rename importPicture/{ => src}/LICENSE.txt (100%) rename importPicture/{ => src}/README.jp.txt (100%) create mode 100644 importPicture/src/osm/jp/gpx/YuuLogFormatter.java create mode 100644 importPicture/src/osm/jp/gpx/matchtime/gui/ParameterPanelSelecter.java diff --git a/importPicture/.classpath b/importPicture/.classpath index 2061450..123528f 100644 --- a/importPicture/.classpath +++ b/importPicture/.classpath @@ -2,5 +2,6 @@ + diff --git a/importPicture/AdjustTime.bat b/importPicture/AdjustTime.bat deleted file mode 100644 index da79b54..0000000 --- a/importPicture/AdjustTime.bat +++ /dev/null @@ -1 +0,0 @@ -javaw -jar AdjustTime.jar \ No newline at end of file diff --git a/importPicture/AdjustTime.sh b/importPicture/AdjustTime.sh index 845a742..61bed2a 100644 --- a/importPicture/AdjustTime.sh +++ b/importPicture/AdjustTime.sh @@ -1 +1 @@ -java -jar AdjustTime.jar +java -cp .:AdjustTime.jar:commons-imaging-1.0-SNAPSHOT.jar osm.jp.gpx.matchtime.gui.AdjustTime diff --git a/importPicture/build.xml b/importPicture/build.xml index e6d543b..415640b 100644 --- a/importPicture/build.xml +++ b/importPicture/build.xml @@ -51,7 +51,7 @@ [STEP 2] コンパイル --> - + @@ -88,10 +88,11 @@ - - - - + + + + + diff --git a/importPicture/src/AdjustTime.bat b/importPicture/src/AdjustTime.bat new file mode 100644 index 0000000..b7c7b05 --- /dev/null +++ b/importPicture/src/AdjustTime.bat @@ -0,0 +1 @@ +javaw -cp .;AdjustTime.jar;commons-imaging-1.0-SNAPSHOT.jar osm.jp.gpx.matchtime.gui.AdjustTime \ No newline at end of file diff --git a/importPicture/src/AdjustTime.sh b/importPicture/src/AdjustTime.sh new file mode 100644 index 0000000..61bed2a --- /dev/null +++ b/importPicture/src/AdjustTime.sh @@ -0,0 +1 @@ +java -cp .:AdjustTime.jar:commons-imaging-1.0-SNAPSHOT.jar osm.jp.gpx.matchtime.gui.AdjustTime diff --git a/importPicture/LICENSE.txt b/importPicture/src/LICENSE.txt similarity index 100% rename from importPicture/LICENSE.txt rename to importPicture/src/LICENSE.txt diff --git a/importPicture/README.jp.txt b/importPicture/src/README.jp.txt similarity index 100% rename from importPicture/README.jp.txt rename to importPicture/src/README.jp.txt diff --git a/importPicture/src/osm/jp/gpx/ImportPicture.java b/importPicture/src/osm/jp/gpx/ImportPicture.java index 6cd6145..2615639 100644 --- a/importPicture/src/osm/jp/gpx/ImportPicture.java +++ b/importPicture/src/osm/jp/gpx/ImportPicture.java @@ -1,11 +1,14 @@ package osm.jp.gpx; import java.io.*; +import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Calendar; import java.util.Comparator; import java.util.Date; +import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Iterator; import java.util.Set; @@ -22,11 +25,24 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; +import org.apache.commons.imaging.ImageReadException; +import org.apache.commons.imaging.ImageWriteException; +import org.apache.commons.imaging.Imaging; +import org.apache.commons.imaging.common.ImageMetadata; +import org.apache.commons.imaging.common.RationalNumber; +import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; +import org.apache.commons.imaging.formats.jpeg.exif.ExifRewriter; +import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; +import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants; +import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory; +import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet; import org.w3c.dom.*; import org.xml.sax.SAXException; public class ImportPicture { public static File gpxDir = new File("."); + public static File outDir = null; /** * ログ設定プロパティファイルのファイル内容 @@ -35,12 +51,12 @@ public class ImportPicture { = "handlers=java.util.logging.ConsoleHandler\n" + ".level=FINEST\n" + "java.util.logging.ConsoleHandler.level=INFO\n" - + "java.util.logging.ConsoleHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter"; + + "java.util.logging.ConsoleHandler.formatter=osm.jp.gpx.YuuLogFormatter"; /** * static initializer によるログ設定の初期化 */ - public static final Logger logger = Logger.getLogger("SampleLogging"); + public static final Logger logger = Logger.getLogger("CommandLogging"); static { InputStream inStream = null; try { @@ -80,11 +96,13 @@ public class ImportPicture { * argv[0] = 画像ファイルが格納されているディレクトリ * argv[1] = 時刻補正の基準とする画像ファイル * argv[2] = 基準画像ファイルの精確な撮影日時 "yyyy-MM-dd'T'HH:mm:ss" - * argv[3] = 撮影位置をロギングしたGPXファイル + * argv[3] = [EXIF] EXIF情報の書き換えを行う / [not] EXIF情報の書き換えを行わない + * argv[4] = 撮影位置をロギングしたGPXファイル * * @throws IOException + * @throws ImageReadException */ - public static void main(String[] argv) throws IOException + public static void main(String[] argv) throws Exception { Date jptime; @@ -92,19 +110,29 @@ public class ImportPicture { gpxDir = new File(argv[0]); } - if (argv.length < 3) { - System.out.println("> java -jar importPicture.jar