1
package org.jaudiotagger.tag.asf;
3
import org.jaudiotagger.audio.asf.data.MetadataDescriptor;
4
import org.jaudiotagger.tag.asf.AsfTagField;
5
import org.jaudiotagger.tag.asf.AsfFieldKey;
6
import org.jaudiotagger.tag.TagField;
8
import javax.imageio.ImageIO;
10
import java.awt.image.BufferedImage;
11
import java.io.ByteArrayInputStream;
12
import java.io.IOException;
15
* An <code>AbstractAsfTagImageField</code> is an abstract class for representing tag
16
* fields containing image data.<br>
18
* @author Christian Laireiter
20
abstract class AbstractAsfTagImageField extends AsfTagField
24
* Creates a image tag field.
27
* the ASF field that should be represented.
29
public AbstractAsfTagImageField(final AsfFieldKey field) {
34
* Creates an instance.
37
* The descriptor which should be represented as a
40
public AbstractAsfTagImageField(final MetadataDescriptor source) {
45
* Creates a tag field.
48
* The field identifier to use.
50
public AbstractAsfTagImageField(final String fieldKey) {
55
* This method returns an image instance from the
56
* {@linkplain #getRawImageData() image content}.
58
* @return the image instance
61
public BufferedImage getImage() throws IOException {
62
return ImageIO.read(new ByteArrayInputStream(getRawImageData()));
66
* Returns the size of the {@linkplain #getRawImageData() image data}.<br>
68
* @return image data size in bytes.
70
public abstract int getImageDataSize();
73
* Returns the raw data of the represented image.<br>
75
* @return raw image data
77
public abstract byte[] getRawImageData();