0,0 → 1,88 |
/* |
* This is public domain software - that is, you can do whatever you want |
* with it, and include it software that is licensed under the GNU or the |
* BSD license, or whatever other licence you choose, including proprietary |
* closed source licenses. I do ask that you leave this header in tact. |
* |
* If you make modifications to this code that you think would benefit the |
* wider community, please send me a copy and I'll post it on my site. |
* |
* If you make use of this code, I'd appreciate hearing about it. |
* drew@drewnoakes.com |
* Latest version of this software kept at |
* http://drewnoakes.com/ |
*/ |
package com.drew.metadata.jpeg; |
|
import com.drew.metadata.Directory; |
import com.drew.metadata.MetadataException; |
import com.drew.metadata.TagDescriptor; |
|
/** |
* Provides human-readable string versions of the tags stored in a JpegDirectory. |
* Thanks to Darrell Silver (www.darrellsilver.com) for the initial version of this class. |
*/ |
public class JpegDescriptor extends TagDescriptor |
{ |
public JpegDescriptor(Directory directory) |
{ |
super(directory); |
} |
|
public String getDescription(int tagType) throws MetadataException |
{ |
switch (tagType) |
{ |
case JpegDirectory.TAG_JPEG_COMPONENT_DATA_1: |
return getComponentDataDescription(0); |
case JpegDirectory.TAG_JPEG_COMPONENT_DATA_2: |
return getComponentDataDescription(1); |
case JpegDirectory.TAG_JPEG_COMPONENT_DATA_3: |
return getComponentDataDescription(2); |
case JpegDirectory.TAG_JPEG_COMPONENT_DATA_4: |
return getComponentDataDescription(3); |
case JpegDirectory.TAG_JPEG_DATA_PRECISION: |
return getDataPrecisionDescription(); |
case JpegDirectory.TAG_JPEG_IMAGE_HEIGHT: |
return getImageHeightDescription(); |
case JpegDirectory.TAG_JPEG_IMAGE_WIDTH: |
return getImageWidthDescription(); |
} |
|
return _directory.getString(tagType); |
} |
|
public String getImageWidthDescription() |
{ |
return _directory.getString(JpegDirectory.TAG_JPEG_IMAGE_WIDTH) + " pixels"; |
} |
|
public String getImageHeightDescription() |
{ |
return _directory.getString(JpegDirectory.TAG_JPEG_IMAGE_HEIGHT) + " pixels"; |
} |
|
public String getDataPrecisionDescription() |
{ |
return _directory.getString(JpegDirectory.TAG_JPEG_DATA_PRECISION) + " bits"; |
} |
|
public String getComponentDataDescription(int componentNumber) throws MetadataException |
{ |
JpegComponent component = ((JpegDirectory)_directory).getComponent(componentNumber); |
|
if (component==null) |
throw new MetadataException("No Jpeg component exists with number " + componentNumber); |
|
StringBuffer sb = new StringBuffer(); |
sb.append(component.getComponentName()); |
sb.append(" component: Quantization table "); |
sb.append(component.getQuantizationTableNumber()); |
sb.append(", Sampling factors "); |
sb.append(component.getHorizontalSamplingFactor()); |
sb.append(" horiz/"); |
sb.append(component.getVerticalSamplingFactor()); |
sb.append(" vert"); |
return sb.toString(); |
} |
} |