OSDN Git Service

実行ログコメントの改善
authoryuuhayashi <hayashi.yuu@gmail.com>
Sun, 20 Dec 2015 00:22:00 +0000 (09:22 +0900)
committeryuuhayashi <hayashi.yuu@gmail.com>
Sun, 20 Dec 2015 00:22:00 +0000 (09:22 +0900)
.classpath [new file with mode: 0644]
.project [new file with mode: 0644]
importPicture/src/osm/jp/gpx/ImportPicture.java

diff --git a/.classpath b/.classpath
new file mode 100644 (file)
index 0000000..c32e555
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path="importPicture/src"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+       <classpathentry kind="lib" path="importPicture/lib/commons-imaging-1.0-20150518.202342-66.jar"/>
+       <classpathentry kind="output" path="importPicture/classes"/>
+</classpath>
diff --git a/.project b/.project
new file mode 100644 (file)
index 0000000..4e0947d
--- /dev/null
+++ b/.project
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>AdjustTime</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       <key>LaunchConfigHandle</key>
+                                       <value>&lt;project&gt;/.externalToolBuilders/New_Builder.launch</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
index 29d4c4b..3c798bb 100644 (file)
@@ -321,167 +321,176 @@ public class ImportPicture extends Thread {
         File[] files = dir.listFiles();\r
         Arrays.sort(files, new FileSort());\r
         for (File image : files) {\r
+            System.out.print(String.format("%12s|", image.getName()));\r
             if (image.isDirectory()) {\r
                 ret = proc(image, delta, gpxStartTime, gpxEndTime, map, exifWrite, gpx);\r
+                continue;\r
+            }\r
+            \r
+            String imageName = image.getName();\r
+            if (!checkFile(imageName)) {\r
+                System.out.println(String.format("%20s ", "it is not image file."));\r
+               continue;\r
+            }\r
+            \r
+            Date itime = new Date(image.lastModified());\r
+            Date uktime = new Date(itime.getTime() + delta);\r
+            System.out.print(String.format("%20s ", dfjp.format(itime)));\r
+            System.out.print(String.format("%20s|", dfjp.format(uktime)));\r
+            if ((uktime.getTime() < gpxStartTime) || (uktime.getTime() > gpxEndTime)) {\r
+                System.out.println(String.format("%20s ", "out of time."));\r
+               continue;\r
             }\r
-            else {\r
-                String imageName = image.getName();\r
-                if (checkFile(imageName)) {\r
-                    Date itime = new Date(image.lastModified());\r
-                    Date uktime = new Date(itime.getTime() + delta);\r
-                    if ((uktime.getTime() >= gpxStartTime) && (uktime.getTime() <= gpxEndTime)) {\r
-                        Element trkpt = trkpt(map, uktime);\r
-                        if (trkpt != null) {\r
-                            Element wpt = createWptTag(image, uktime.getTime(), trkpt);\r
-                            String latStr = wpt.getAttribute("lat");\r
-                            String lonStr = wpt.getAttribute("lon");\r
-                            double latitude = Double.parseDouble(latStr);\r
-                            double longitude = Double.parseDouble(lonStr);\r
-                            \r
-                            String eleStr = "-";\r
-                            String magvarStr = "-";\r
-                            NodeList nodes = wpt.getChildNodes();      // 子ノードを取得\r
-                            for (int i4 = 0; i4 < nodes.getLength(); i4++) {\r
-                                Node node = nodes.item(i4);\r
-                                if (node != null) {\r
-                                    switch (node.getNodeName()) {\r
-                                        case "ele":\r
-                                            eleStr = node.getFirstChild().getNodeValue();\r
-                                            break;\r
-                                        case "magvar":\r
-                                            magvarStr = node.getFirstChild().getNodeValue();\r
-                                            break;\r
-                                    }\r
-                                }\r
-                            }\r
 \r
-                            System.out.print(String.format("%12s|", image.getName()));\r
-                            System.out.print(String.format("%20s ", dfjp.format(itime)));\r
-                            System.out.print(String.format("%20s|", dfjp.format(uktime)));\r
-                            System.out.print(String.format("%12s %12s|", latStr, lonStr));\r
-                            System.out.println(String.format("%8s|%6s|", eleStr, magvarStr));\r
-                            ret = true;\r
-\r
-                            if (exifWrite) {\r
-                                TiffOutputSet outputSet = null;\r
-                                FileOutputStream fos = null;\r
-\r
-                                ImageMetadata meta = Imaging.getMetadata(image);\r
-                                JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta;\r
-                                if (jpegMetadata != null) {\r
-                                    TiffImageMetadata exif = jpegMetadata.getExif();\r
-                                    if (exif != null) {\r
-                                        outputSet = exif.getOutputSet();\r
-                                    }\r
-                                }\r
+            Element trkpt = trkpt(map, uktime);\r
+            if (trkpt == null) {\r
+                System.out.println(String.format("%20s ", "Out of GPX logging time."));\r
+               continue;\r
+            }\r
+            \r
+            Element wpt = createWptTag(image, uktime.getTime(), trkpt);\r
+            String latStr = wpt.getAttribute("lat");\r
+            String lonStr = wpt.getAttribute("lon");\r
+            double latitude = Double.parseDouble(latStr);\r
+            double longitude = Double.parseDouble(lonStr);\r
+            \r
+            String eleStr = "-";\r
+            String magvarStr = "-";\r
+            NodeList nodes = wpt.getChildNodes();      // 子ノードを取得\r
+            for (int i4 = 0; i4 < nodes.getLength(); i4++) {\r
+                Node node = nodes.item(i4);\r
+                if (node != null) {\r
+                    switch (node.getNodeName()) {\r
+                        case "ele":\r
+                            eleStr = node.getFirstChild().getNodeValue();\r
+                            break;\r
+                        case "magvar":\r
+                            magvarStr = node.getFirstChild().getNodeValue();\r
+                            break;\r
+                    }\r
+                }\r
+            }\r
 \r
-                                if (outputSet == null) {\r
-                                    System.out.println("added : new tiff output set");\r
-                                    outputSet = new TiffOutputSet();\r
-                                }\r
+            System.out.print(String.format("%12s %12s|", latStr, lonStr));\r
+            System.out.println(String.format("%8s|%6s|", eleStr, magvarStr));\r
+            ret = true;\r
 \r
-                                //---- EXIF_TAG_DATE_TIME_ORIGINAL / 「撮影日時/オリジナル画像の生成日時」----\r
-                                TiffOutputDirectory exifDir = outputSet.getOrCreateExifDirectory();\r
-                                {\r
-                                    Calendar cal = GregorianCalendar.getInstance();\r
-                                    cal.setTime(uktime);\r
-                                    exifDir.removeField(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL);\r
-                                    exifDir.add(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL, new SimpleDateFormat("yyyy:MM:dd HH:mm:ss").format(cal.getTime()));\r
-                                }\r
+            if (exifWrite) {\r
+                TiffOutputSet outputSet = null;\r
+                FileOutputStream fos = null;\r
 \r
-                                //---- EXIF GPS_TIME_STAMP ----\r
-                                TiffOutputDirectory gpsDir = outputSet.getOrCreateGPSDirectory();\r
-                                {\r
-                                    Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"));\r
-                                    cal.setTime(uktime);\r
-                                    final String yearStr = yearFormatter.format(cal.get(Calendar.YEAR));\r
-                                    final String monthStr = monthFormatter.format(cal.get(Calendar.MONTH) + 1);\r
-                                    final String dayStr = dayFormatter.format(cal.get(Calendar.DAY_OF_MONTH));\r
-                                    final String dateStamp = yearStr +":"+ monthStr +":"+ dayStr;\r
-\r
-                                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_TIME_STAMP);\r
-                                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_TIME_STAMP,\r
-                                            RationalNumber.valueOf(cal.get(Calendar.HOUR_OF_DAY)),\r
-                                            RationalNumber.valueOf(cal.get(Calendar.MINUTE)),\r
-                                            RationalNumber.valueOf(cal.get(Calendar.SECOND)));\r
-                                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_DATE_STAMP);\r
-                                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_DATE_STAMP, dateStamp);\r
-                                }\r
+                ImageMetadata meta = Imaging.getMetadata(image);\r
+                JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta;\r
+                if (jpegMetadata != null) {\r
+                    TiffImageMetadata exif = jpegMetadata.getExif();\r
+                    if (exif != null) {\r
+                        outputSet = exif.getOutputSet();\r
+                    }\r
+                }\r
 \r
-                                //---- EXIF GPS elevation/ALTITUDE ----\r
-                                if (eleStr.equals("-") == false) {\r
-                                    final double altitude = Double.parseDouble(eleStr);\r
-                                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_ALTITUDE);\r
-                                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_ALTITUDE, RationalNumber.valueOf(altitude));\r
-                                }\r
+                if (outputSet == null) {\r
+                    System.out.println("added : new tiff output set");\r
+                    outputSet = new TiffOutputSet();\r
+                }\r
 \r
-                                //---- EXIF GPS magvar/IMG_DIRECTION ----\r
-                                if (magvarStr.equals("-") == false) {\r
-                                    final double magvar = Double.parseDouble(magvarStr);\r
-                                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION);\r
-                                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION, RationalNumber.valueOf(magvar));\r
-                                }\r
+                //---- EXIF_TAG_DATE_TIME_ORIGINAL / 「撮影日時/オリジナル画像の生成日時」----\r
+                TiffOutputDirectory exifDir = outputSet.getOrCreateExifDirectory();\r
+                {\r
+                    Calendar cal = GregorianCalendar.getInstance();\r
+                    cal.setTime(uktime);\r
+                    exifDir.removeField(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL);\r
+                    exifDir.add(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL, new SimpleDateFormat("yyyy:MM:dd HH:mm:ss").format(cal.getTime()));\r
+                }\r
 \r
-                                //---- EXIF GPS_ ----\r
-                                final String longitudeRef = (longitude < 0 ? "W" : "E");\r
-                                longitude = Math.abs(longitude);\r
-                                final String latitudeRef = (latitude < 0 ? "S" : "N");\r
-                                latitude = Math.abs(latitude);\r
-\r
-                                gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LONGITUDE_REF);\r
-                                gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LONGITUDE_REF, longitudeRef);\r
-                                gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE_REF);\r
-                                gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LATITUDE_REF, latitudeRef);\r
-                                {\r
-                                    double value = longitude;\r
-                                    final double longitudeDegrees = (long) value;\r
-                                    value %= 1;\r
-                                    value *= 60.0;\r
-                                    final double longitudeMinutes = (long) value;\r
-                                    value %= 1;\r
-                                    value *= 60.0;\r
-                                    final double longitudeSeconds = value;\r
-                                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LONGITUDE);\r
-                                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LONGITUDE,\r
-                                            RationalNumber.valueOf(longitudeDegrees),\r
-                                            RationalNumber.valueOf(longitudeMinutes),\r
-                                            RationalNumber.valueOf(longitudeSeconds));\r
-                                }\r
-                                {\r
-                                    double value = latitude;\r
-                                    final double latitudeDegrees = (long) value;\r
-                                    value %= 1;\r
-                                    value *= 60.0;\r
-                                    final double latitudeMinutes = (long) value;\r
-                                    value %= 1;\r
-                                    value *= 60.0;\r
-                                    final double latitudeSeconds = value;\r
-                                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE);\r
-                                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LATITUDE,\r
-                                            RationalNumber.valueOf(latitudeDegrees),\r
-                                            RationalNumber.valueOf(latitudeMinutes),\r
-                                            RationalNumber.valueOf(latitudeSeconds));\r
-                                }\r
+                //---- EXIF GPS_TIME_STAMP ----\r
+                TiffOutputDirectory gpsDir = outputSet.getOrCreateGPSDirectory();\r
+                {\r
+                    Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"));\r
+                    cal.setTime(uktime);\r
+                    final String yearStr = yearFormatter.format(cal.get(Calendar.YEAR));\r
+                    final String monthStr = monthFormatter.format(cal.get(Calendar.MONTH) + 1);\r
+                    final String dayStr = dayFormatter.format(cal.get(Calendar.DAY_OF_MONTH));\r
+                    final String dateStamp = yearStr +":"+ monthStr +":"+ dayStr;\r
+\r
+                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_TIME_STAMP);\r
+                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_TIME_STAMP,\r
+                            RationalNumber.valueOf(cal.get(Calendar.HOUR_OF_DAY)),\r
+                            RationalNumber.valueOf(cal.get(Calendar.MINUTE)),\r
+                            RationalNumber.valueOf(cal.get(Calendar.SECOND)));\r
+                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_DATE_STAMP);\r
+                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_DATE_STAMP, dateStamp);\r
+                }\r
 \r
-                                outDir.mkdir();\r
-                                ExifRewriter rewriter = new ExifRewriter();\r
-                                try {\r
-                                    fos = new FileOutputStream(new File(outDir, imageName));\r
-                                    rewriter.updateExifMetadataLossy(image, fos, outputSet);\r
-                                }\r
-                                finally {\r
-                                    if (fos != null) {\r
-                                        fos.close();\r
-                                    }\r
-                                }\r
-                            }\r
+                //---- EXIF GPS elevation/ALTITUDE ----\r
+                if (eleStr.equals("-") == false) {\r
+                    final double altitude = Double.parseDouble(eleStr);\r
+                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_ALTITUDE);\r
+                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_ALTITUDE, RationalNumber.valueOf(altitude));\r
+                }\r
 \r
-                            Element temp = getCopy(gpx.getOwnerDocument(), wpt);\r
-                            gpx.appendChild(temp);\r
-                        }\r
+                //---- EXIF GPS magvar/IMG_DIRECTION ----\r
+                if (magvarStr.equals("-") == false) {\r
+                    final double magvar = Double.parseDouble(magvarStr);\r
+                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION);\r
+                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION, RationalNumber.valueOf(magvar));\r
+                }\r
+\r
+                //---- EXIF GPS_ ----\r
+                final String longitudeRef = (longitude < 0 ? "W" : "E");\r
+                longitude = Math.abs(longitude);\r
+                final String latitudeRef = (latitude < 0 ? "S" : "N");\r
+                latitude = Math.abs(latitude);\r
+\r
+                gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LONGITUDE_REF);\r
+                gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LONGITUDE_REF, longitudeRef);\r
+                gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE_REF);\r
+                gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LATITUDE_REF, latitudeRef);\r
+                {\r
+                    double value = longitude;\r
+                    final double longitudeDegrees = (long) value;\r
+                    value %= 1;\r
+                    value *= 60.0;\r
+                    final double longitudeMinutes = (long) value;\r
+                    value %= 1;\r
+                    value *= 60.0;\r
+                    final double longitudeSeconds = value;\r
+                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LONGITUDE);\r
+                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LONGITUDE,\r
+                            RationalNumber.valueOf(longitudeDegrees),\r
+                            RationalNumber.valueOf(longitudeMinutes),\r
+                            RationalNumber.valueOf(longitudeSeconds));\r
+                }\r
+                {\r
+                    double value = latitude;\r
+                    final double latitudeDegrees = (long) value;\r
+                    value %= 1;\r
+                    value *= 60.0;\r
+                    final double latitudeMinutes = (long) value;\r
+                    value %= 1;\r
+                    value *= 60.0;\r
+                    final double latitudeSeconds = value;\r
+                    gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_LATITUDE);\r
+                    gpsDir.add(GpsTagConstants.GPS_TAG_GPS_LATITUDE,\r
+                            RationalNumber.valueOf(latitudeDegrees),\r
+                            RationalNumber.valueOf(latitudeMinutes),\r
+                            RationalNumber.valueOf(latitudeSeconds));\r
+                }\r
+\r
+                outDir.mkdir();\r
+                ExifRewriter rewriter = new ExifRewriter();\r
+                try {\r
+                    fos = new FileOutputStream(new File(outDir, imageName));\r
+                    rewriter.updateExifMetadataLossy(image, fos, outputSet);\r
+                }\r
+                finally {\r
+                    if (fos != null) {\r
+                        fos.close();\r
                     }\r
                 }\r
             }\r
+\r
+            Element temp = getCopy(gpx.getOwnerDocument(), wpt);\r
+            gpx.appendChild(temp);\r
         }\r
         return ret;\r
     }\r