Ignore:
Timestamp:
2013-08-09T18:05:11+02:00 (13 years ago)
Author:
bastiK
Message:

applied #8895 - Upgrade metadata-extractor to v. 2.6.4 (patch by ebourg)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/com/drew/metadata/jpeg/JpegCommentReader.java

    r4231 r6127  
    11/*
    2  * This is public domain software - that is, you can do whatever you want
    3  * with it, and include it software that is licensed under the GNU or the
    4  * BSD license, or whatever other licence you choose, including proprietary
    5  * closed source licenses.  I do ask that you leave this header in tact.
     2 * Copyright 2002-2012 Drew Noakes
    63 *
    7  * If you make modifications to this code that you think would benefit the
    8  * wider community, please send me a copy and I'll post it on my site.
     4 *    Licensed under the Apache License, Version 2.0 (the "License");
     5 *    you may not use this file except in compliance with the License.
     6 *    You may obtain a copy of the License at
    97 *
    10  * If you make use of this code, I'd appreciate hearing about it.
    11  *   drew@drewnoakes.com
    12  * Latest version of this software kept at
    13  *   http://drewnoakes.com/
     8 *        http://www.apache.org/licenses/LICENSE-2.0
    149 *
    15  * Created by dnoakes on Oct 10, 2003 using IntelliJ IDEA.
     10 *    Unless required by applicable law or agreed to in writing, software
     11 *    distributed under the License is distributed on an "AS IS" BASIS,
     12 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 *    See the License for the specific language governing permissions and
     14 *    limitations under the License.
     15 *
     16 * More information about this project is available at:
     17 *
     18 *    http://drewnoakes.com/code/exif/
     19 *    http://code.google.com/p/metadata-extractor/
    1620 */
    1721package com.drew.metadata.jpeg;
    1822
    19 import com.drew.imaging.jpeg.JpegProcessingException;
    20 import com.drew.imaging.jpeg.JpegSegmentReader;
     23import com.drew.lang.BufferBoundsException;
     24import com.drew.lang.BufferReader;
     25import com.drew.lang.annotations.NotNull;
    2126import com.drew.metadata.Metadata;
    2227import com.drew.metadata.MetadataReader;
    2328
    24 import java.io.File;
    25 import java.io.InputStream;
    26 
    2729/**
     30 * Decodes the comment stored within Jpeg files, populating a <code>Metadata</code> object with tag values in a
     31 * <code>JpegCommentDirectory</code>.
    2832 *
    2933 * @author Drew Noakes http://drewnoakes.com
     
    3236{
    3337    /**
    34      * The COM data segment.
    35      */
    36     private final byte[] _data;
    37 
    38     /**
    39      * Creates a new JpegReader for the specified Jpeg jpegFile.
    40      */
    41     public JpegCommentReader(File jpegFile) throws JpegProcessingException
    42     {
    43         this(new JpegSegmentReader(jpegFile).readSegment(JpegSegmentReader.SEGMENT_COM));
    44     }
    45 
    46     /** Creates a JpegCommentReader for a JPEG stream.
    47      *
    48      * @param is JPEG stream. Stream will be closed.
    49      */
    50     public JpegCommentReader(InputStream is) throws JpegProcessingException
    51     {
    52         this(new JpegSegmentReader(is).readSegment(JpegSegmentReader.SEGMENT_APPD));
    53     }
    54 
    55     public JpegCommentReader(byte[] data)
    56     {
    57         _data = data;
    58     }
    59 
    60     /**
    61      * Performs the Jpeg data extraction, returning a new instance of <code>Metadata</code>.
    62      */
    63     public Metadata extract()
    64     {
    65         return extract(new Metadata());
    66     }
    67 
    68     /**
    6938     * Performs the Jpeg data extraction, adding found values to the specified
    7039     * instance of <code>Metadata</code>.
    7140     */
    72     public Metadata extract(Metadata metadata)
     41    public void extract(@NotNull final BufferReader reader, @NotNull Metadata metadata)
    7342    {
    74         if (_data==null) {
    75             return metadata;
     43        JpegCommentDirectory directory = metadata.getOrCreateDirectory(JpegCommentDirectory.class);
     44
     45        try {
     46            directory.setString(JpegCommentDirectory.TAG_JPEG_COMMENT, reader.getString(0, (int)reader.getLength()));
     47        } catch (BufferBoundsException e) {
     48            directory.addError("Exception reading JPEG comment string");
    7649        }
    77 
    78         JpegCommentDirectory directory = (JpegCommentDirectory)metadata.getDirectory(JpegCommentDirectory.class);
    79 
    80         directory.setString(JpegCommentDirectory.TAG_JPEG_COMMENT, new String(_data));
    81 
    82         return metadata;
    8350    }
    8451}
Note: See TracChangeset for help on using the changeset viewer.