2017-01-09 12 views
-2

JAVAでアプリケーションのImageの緯度と経度を設定したいと思います。私といくつかのすばらしい情報を共有してください。イメージのGPS座標を設定するには?

ありがとうございます。

enter image description here

私はこのような設定にしたい:

enter image description here

答えて

2

あなたはApache commons imagingでこれを行うことができます。

/** 
* This example illustrates how to add/update EXIF metadata in a JPEG file. 
* 
* @param jpegImageFile 
*   A source image file. 
* @param dst 
*   The output file. 
* @throws IOException 
* @throws ImageReadException 
* @throws ImageWriteException 
*/ 
public void changeExifMetadata(final File jpegImageFile, final File dst) 
     throws IOException, ImageReadException, ImageWriteException { 

    try (FileOutputStream fos = new FileOutputStream(dst); 
      OutputStream os = new BufferedOutputStream(fos);) { 

     TiffOutputSet outputSet = null; 

     // note that metadata might be null if no metadata is found. 
     final ImageMetadata metadata = Imaging.getMetadata(jpegImageFile); 
     final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata; 
     if (null != jpegMetadata) { 
      // note that exif might be null if no Exif metadata is found. 
      final TiffImageMetadata exif = jpegMetadata.getExif(); 

      if (null != exif) { 
       // TiffImageMetadata class is immutable (read-only). 
       // TiffOutputSet class represents the Exif data to write. 
       // 
       // Usually, we want to update existing Exif metadata by 
       // changing 
       // the values of a few fields, or adding a field. 
       // In these cases, it is easiest to use getOutputSet() to 
       // start with a "copy" of the fields read from the image. 
       outputSet = exif.getOutputSet(); 
      } 
     } 

     // if file does not contain any exif metadata, we create an empty 
     // set of exif metadata. Otherwise, we keep all of the other 
     // existing tags. 
     if (null == outputSet) { 
      outputSet = new TiffOutputSet(); 
     } 

     { 
      // Example of how to add a field/tag to the output set. 
      // 
      // Note that you should first remove the field/tag if it already 
      // exists in this directory, or you may end up with duplicate 
      // tags. See above. 
      // 
      // Certain fields/tags are expected in certain Exif directories; 
      // Others can occur in more than one directory (and often have a 
      // different meaning in different directories). 
      // 
      // TagInfo constants often contain a description of what 
      // directories are associated with a given tag. 
      // 
      final TiffOutputDirectory exifDirectory = outputSet.getOrCreateExifDirectory(); 
      // make sure to remove old value if present (this method will 
      // not fail if the tag does not exist). 
      exifDirectory.removeField(ExifTagConstants.EXIF_TAG_APERTURE_VALUE); 
      exifDirectory.add(ExifTagConstants.EXIF_TAG_APERTURE_VALUE, 
        new RationalNumber(3, 10)); 
     } 

     { 
      // Example of how to add/update GPS info to output set. 

      // New York City 
      final double longitude = -74.0; // 74 degrees W (in Degrees East) 
      final double latitude = 40 + 43/60.0; // 40 degrees N (in Degrees 
      // North) 

      outputSet.setGPSInDegrees(longitude, latitude); 
     } 

     // printTagValue(jpegMetadata, TiffConstants.TIFF_TAG_DATE_TIME); 

     new ExifRewriter().updateExifMetadataLossless(jpegImageFile, os, 
       outputSet); 
    } 
} 

here

がたくさんあります