Changeset 6127 in josm for trunk/src/com/drew/metadata/jpeg/JpegCommentReader.java
- Timestamp:
- 2013-08-09T18:05:11+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/drew/metadata/jpeg/JpegCommentReader.java
r4231 r6127 1 1 /* 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 6 3 * 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 9 7 * 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 14 9 * 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/ 16 20 */ 17 21 package com.drew.metadata.jpeg; 18 22 19 import com.drew.imaging.jpeg.JpegProcessingException; 20 import com.drew.imaging.jpeg.JpegSegmentReader; 23 import com.drew.lang.BufferBoundsException; 24 import com.drew.lang.BufferReader; 25 import com.drew.lang.annotations.NotNull; 21 26 import com.drew.metadata.Metadata; 22 27 import com.drew.metadata.MetadataReader; 23 28 24 import java.io.File;25 import java.io.InputStream;26 27 29 /** 30 * Decodes the comment stored within Jpeg files, populating a <code>Metadata</code> object with tag values in a 31 * <code>JpegCommentDirectory</code>. 28 32 * 29 33 * @author Drew Noakes http://drewnoakes.com … … 32 36 { 33 37 /** 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 JpegProcessingException42 {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 JpegProcessingException51 {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 /**69 38 * Performs the Jpeg data extraction, adding found values to the specified 70 39 * instance of <code>Metadata</code>. 71 40 */ 72 public Metadataextract(Metadata metadata)41 public void extract(@NotNull final BufferReader reader, @NotNull Metadata metadata) 73 42 { 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"); 76 49 } 77 78 JpegCommentDirectory directory = (JpegCommentDirectory)metadata.getDirectory(JpegCommentDirectory.class);79 80 directory.setString(JpegCommentDirectory.TAG_JPEG_COMMENT, new String(_data));81 82 return metadata;83 50 } 84 51 }
Note:
See TracChangeset
for help on using the changeset viewer.
