Examples of TiffOutputDirectory


Examples of org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory

                // This is a bug.
                // Ignore second directory of a given type.
                continue;
            }

            final TiffOutputDirectory outputDirectory = srcDir
                    .getOutputDirectory(byteOrder);
            result.addDirectory(outputDirectory);
        }

        return result;
View Full Code Here

Examples of org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory

        }

        public TiffOutputDirectory getOutputDirectory(final ByteOrder byteOrder)
                throws ImageWriteException {
            try {
                final TiffOutputDirectory dstDir = new TiffOutputDirectory(type,
                        byteOrder);

                final List<? extends IImageMetadataItem> entries = getItems();
                for (IImageMetadataItem entry : entries) {
                    final TiffImageMetadata.Item item = (TiffImageMetadata.Item) entry;
                    final TiffField srcField = item.getTiffField();

                    if (null != dstDir.findField(srcField.getTag())) {
                        // ignore duplicate tags in a directory.
                        continue;
                    } else if (srcField.getTagInfo().isOffset()) {
                        // ignore offset fields.
                        continue;
                    }

                    final TagInfo tagInfo = srcField.getTagInfo();
                    final FieldType fieldType = srcField.getFieldType();
                    // byte bytes[] = srcField.fieldType.getRawBytes(srcField);

                    // Debug.debug("tagInfo", tagInfo);

                    final Object value = srcField.getValue();

                    // Debug.debug("value", Debug.getType(value));

                    final byte[] bytes = tagInfo.encodeValue(fieldType, value,
                            byteOrder);

                    // if (tagInfo.isUnknown())
                    // Debug.debug(
                    // "\t" + "unknown tag(0x"
                    // + Integer.toHexString(srcField.tag)
                    // + ") bytes", bytes);

                    final int count = bytes.length / fieldType.getSize();
                    final TiffOutputField dstField = new TiffOutputField(
                            srcField.getTag(), tagInfo, fieldType, count, bytes);
                    dstField.setSortHint(srcField.getSortHint());
                    dstDir.add(dstField);
                }

                dstDir.setTiffImageData(getTiffImageData());
                dstDir.setJpegImageData(getJpegImageData());

                return dstDir;
            } catch (final ImageReadException e) {
                throw new ImageWriteException(e.getMessage(), e);
            }
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.write.TiffOutputDirectory

                // org.apache.sanselan.formats.tiff.constants.AllTagConstants
                //
                TiffOutputField aperture = TiffOutputField.create(
                        TiffConstants.EXIF_TAG_APERTURE_VALUE,
                        outputSet.byteOrder, new Double(0.3));
                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(TiffConstants.EXIF_TAG_APERTURE_VALUE);
                exifDirectory.add(aperture);
            }

            {
                // Example of how to add/update GPS info to output set.
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.write.TiffOutputDirectory

                // One complicating factor is that in some cases, manufacturers
                // will place the same tag in different directories.
                // To learn which directory a tag appears in, either refer to
                // the constants in ExifTagConstants.java or go to Phil Harvey's
                // EXIF website.
                TiffOutputDirectory exifDirectory = outputSet
                        .getExifDirectory();
                if (null != exifDirectory)
                    exifDirectory
                            .removeField(TiffConstants.EXIF_TAG_APERTURE_VALUE);
            }

            os = new FileOutputStream(dst);
            os = new BufferedOutputStream(os);
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.write.TiffOutputDirectory

                // This is a bug.
                // Ignore second directory of a given type.
                continue;
            }

            TiffOutputDirectory outputDirectory = srcDir
                    .getOutputDirectory(byteOrder);
            result.addDirectory(outputDirectory);
        }

        return result;
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.write.TiffOutputDirectory

        public TiffOutputDirectory getOutputDirectory(int byteOrder)
                throws ImageWriteException
        {
            try
            {
                TiffOutputDirectory dstDir = new TiffOutputDirectory(type);

                ArrayList entries = getItems();
                for (int i = 0; i < entries.size(); i++)
                {
                    TiffImageMetadata.Item item = (TiffImageMetadata.Item) entries
                            .get(i);
                    TiffField srcField = item.getTiffField();

                    if (null != dstDir.findField(srcField.tag))
                    {
                        // ignore duplicate tags in a directory.
                        continue;
                    }
                    else if (srcField.tagInfo instanceof TagInfo.Offset)
                    {
                        // ignore offset fields.
                        continue;
                    }

                    TagInfo tagInfo = srcField.tagInfo;
                    FieldType fieldType = srcField.fieldType;
                    int count = srcField.length;
                    //            byte bytes[] = srcField.fieldType.getRawBytes(srcField);

                    //                    Debug.debug("tagInfo", tagInfo);

                    Object value = srcField.getValue();

                    //                    Debug.debug("value", Debug.getType(value));

                    byte bytes[] = tagInfo.encodeValue(fieldType, value,
                            byteOrder);

                    //                    if (tagInfo.isUnknown())
                    //                        Debug.debug(
                    //                                "\t" + "unknown tag(0x"
                    //                                        + Integer.toHexString(srcField.tag)
                    //                                        + ") bytes", bytes);

                    TiffOutputField dstField = new TiffOutputField(
                            srcField.tag, tagInfo, fieldType, count, bytes);
                    dstField.setSortHint(srcField.getSortHint());
                    dstDir.add(dstField);
                }

                dstDir.setTiffImageData(getTiffImageData());
                dstDir.setJpegImageData(getJpegImageData());

                return dstDir;
            }
            catch (ImageReadException e)
            {
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.write.TiffOutputDirectory

    @Override
    public boolean writeExifGpsInfo(File jpeg, Wpt wpt, boolean overwrite){
        try{
            TiffOutputSet outputSet = SanselanExifWriter.getExif(jpeg);
            outputSet.setGPSInDegrees(wpt.getLon().doubleValue(), wpt.getLat().doubleValue());
            TiffOutputDirectory gpsIfd = outputSet.getGPSDirectory();
            TiffOutputField field;
            final int byteOrder = outputSet.byteOrder;

            /* version */
            field = makeField(
                TiffConstants.GPS_TAG_GPS_VERSION_ID,
                new byte[]{
                (byte) 2, (byte) 2, (byte) 0, (byte) 0});
            gpsIfd.removeField(TiffConstants.GPS_TAG_GPS_VERSION_ID);
            gpsIfd.add(field);

            /* map datum */
            //System.err.println("Writing map datum.");
            field = makeField(
                TiffConstants.GPS_TAG_GPS_MAP_DATUM,
                byteOrder, "WGS-84");
            gpsIfd.removeField(TiffConstants.GPS_TAG_GPS_MAP_DATUM);
            gpsIfd.add(field);

            /* elevation */
            if(wpt.getEle() != null){
                //System.err.println("Writing ele ref.");
                double ele = wpt.getEle().doubleValue();
                final Byte eleref = new Byte(
                    (byte) ((ele < 0)
                    ? TiffConstants.GPS_TAG_GPS_ALTITUDE_REF_VALUE_BELOW_SEA_LEVEL
                    : TiffConstants.GPS_TAG_GPS_ALTITUDE_REF_VALUE_ABOVE_SEA_LEVEL)
                );
                // use custom tag info because GPS_TAG_GPS_ALTITUDE_REF has length -1
                TagInfo tag  = new TagInfo(
                    "GPS Altitude Ref",
                    0x0005,
                    TiffConstants.FIELD_TYPE_DESCRIPTION_BYTE,
                    1,
                    TiffConstants.EXIF_DIRECTORY_GPS);
                field = TiffOutputField.create(
                    tag, byteOrder, eleref);
                gpsIfd.removeField(TiffConstants.GPS_TAG_GPS_ALTITUDE_REF);
                gpsIfd.add(field);

                //System.err.println("Writing ele.");
                // use custom tag info because GPS_TAG_GPS_ALTITUDE_REF has length -1
                tag  = new TagInfo(
                    "GPS Altitude",
                    0x0006,
                    TiffConstants.FIELD_TYPE_DESCRIPTION_RATIONAL,
                    1,
                    TiffConstants.EXIF_DIRECTORY_GPS);
                field = TiffOutputField.create(
                    tag,
                    byteOrder, new Double(ele));
                gpsIfd.removeField(TiffConstants.GPS_TAG_GPS_ALTITUDE);
                gpsIfd.add(field);
            }

            /* dateTime */
            //System.err.println("Writing date/time.");
            if(wpt.getTime() != null){
                Date dateTime = wpt.getTime();
                Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
                cal.setTime(dateTime);
                field = TiffOutputField.create(
                    TiffConstants.GPS_TAG_GPS_TIME_STAMP,
                    byteOrder, new Double[]{
                        new Double(cal.get(Calendar.HOUR_OF_DAY)),
                        new Double(cal.get(Calendar.MINUTE)),
                        new Double(cal.get(Calendar.SECOND))
                    });
                gpsIfd.removeField(TiffConstants.GPS_TAG_GPS_TIME_STAMP);
                gpsIfd.add(field);

                field = makeField(
                    TiffConstants.GPS_TAG_GPS_DATE_STAMP,
                    byteOrder,
                    AbstractExecExifWriter.formatAsExifDate(dateTime));
                gpsIfd.removeField(TiffConstants.GPS_TAG_GPS_DATE_STAMP);
                gpsIfd.add(field);
            }
            return writeExif(jpeg, outputSet);
        } catch (Exception ex) {
            System.err.println(ex);
            ex.printStackTrace();
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.write.TiffOutputDirectory

        // see org.apache.sanselan.formats.tiff.constants.AllTagConstants
        //
        TiffOutputField aperture = TiffOutputField.create(
            TiffConstants.EXIF_TAG_APERTURE_VALUE,
            outputSet.byteOrder, new Double(0.3));
        TiffOutputDirectory exifDirectory = outputSet
            .getOrCreateExifDirectory();
        exifDirectory.add(aperture);
      }

      {
        // Example of how to add/update GPS info to output set.
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.write.TiffOutputDirectory

        // This is a bug.
        // Ignore second directory of a given type.
        continue;
      }

      TiffOutputDirectory outputDirectory = srcDir
          .getOutputDirectory(byteOrder);
      result.addDirectory(outputDirectory);
    }

    return result;
View Full Code Here

Examples of org.apache.sanselan.formats.tiff.write.TiffOutputDirectory

    public TiffOutputDirectory getOutputDirectory(int byteOrder)
        throws ImageWriteException
    {
      try
      {
        TiffOutputDirectory dstDir = new TiffOutputDirectory(type);

        ArrayList entries = getItems();
        for (int i = 0; i < entries.size(); i++)
        {
          TiffImageMetadata.Item item = (TiffImageMetadata.Item) entries
              .get(i);
          TiffField srcField = item.getTiffField();

          if (null != dstDir.findField(srcField.tag))
          {
            // ignore duplicate tags in a directory.
            continue;
          }
          else if (srcField.tagInfo instanceof TagInfo.Offset)
          {
            // ignore offset fields.
            continue;
          }

          TagInfo tagInfo = srcField.tagInfo;
          FieldType fieldType = srcField.fieldType;
          int count = srcField.length;
          //      byte bytes[] = srcField.fieldType.getRawBytes(srcField);

          //          Debug.debug("tagInfo", tagInfo);

          Object value = srcField.getValue();

          //          Debug.debug("value", Debug.getType(value));

          byte bytes[] = tagInfo.encodeValue(fieldType, value,
              byteOrder);

          //          if (tagInfo.isUnknown())
          //            Debug.debug(
          //                "\t" + "unknown tag(0x"
          //                    + Integer.toHexString(srcField.tag)
          //                    + ") bytes", bytes);

          TiffOutputField dstField = new TiffOutputField(
              srcField.tag, tagInfo, fieldType, count, bytes);
          dstField.setSortHint(srcField.getSortHint());
          dstDir.add(dstField);
        }

        dstDir.setTiffImageData(getTiffImageData());
        dstDir.setJpegImageData(getJpegImageData());

        return dstDir;
      }
      catch (ImageReadException e)
      {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.