mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-04 12:05:29 -04:00
TMI-META: Now reads ICC profile from PSD Image Resource Blocks in JPEG.
This commit is contained in:
parent
7634ca1261
commit
61cbeb0a09
@ -29,7 +29,9 @@
|
|||||||
package com.twelvemonkeys.imageio.metadata.jpeg;
|
package com.twelvemonkeys.imageio.metadata.jpeg;
|
||||||
|
|
||||||
import com.twelvemonkeys.imageio.metadata.Directory;
|
import com.twelvemonkeys.imageio.metadata.Directory;
|
||||||
|
import com.twelvemonkeys.imageio.metadata.Entry;
|
||||||
import com.twelvemonkeys.imageio.metadata.exif.EXIFReader;
|
import com.twelvemonkeys.imageio.metadata.exif.EXIFReader;
|
||||||
|
import com.twelvemonkeys.imageio.metadata.psd.PSD;
|
||||||
import com.twelvemonkeys.imageio.metadata.psd.PSDReader;
|
import com.twelvemonkeys.imageio.metadata.psd.PSDReader;
|
||||||
import com.twelvemonkeys.imageio.metadata.xmp.XMP;
|
import com.twelvemonkeys.imageio.metadata.xmp.XMP;
|
||||||
import com.twelvemonkeys.imageio.metadata.xmp.XMPReader;
|
import com.twelvemonkeys.imageio.metadata.xmp.XMPReader;
|
||||||
@ -38,6 +40,8 @@ import com.twelvemonkeys.imageio.stream.ByteArrayImageInputStream;
|
|||||||
import javax.imageio.IIOException;
|
import javax.imageio.IIOException;
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.imageio.stream.ImageInputStream;
|
import javax.imageio.stream.ImageInputStream;
|
||||||
|
import java.awt.color.ICC_ColorSpace;
|
||||||
|
import java.awt.color.ICC_Profile;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -290,6 +294,11 @@ public final class JPEGSegmentUtil {
|
|||||||
// IPTC metadata. Probably duplicated in the XMP though...
|
// IPTC metadata. Probably duplicated in the XMP though...
|
||||||
ImageInputStream stream = new ByteArrayImageInputStream(segment.data, segment.offset(), segment.length());
|
ImageInputStream stream = new ByteArrayImageInputStream(segment.data, segment.offset(), segment.length());
|
||||||
Directory psd = new PSDReader().read(stream);
|
Directory psd = new PSDReader().read(stream);
|
||||||
|
Entry iccEntry = psd.getEntryById(PSD.RES_ICC_PROFILE);
|
||||||
|
if (iccEntry != null) {
|
||||||
|
ICC_ColorSpace colorSpace = new ICC_ColorSpace(ICC_Profile.getInstance((byte[]) iccEntry.getValue()));
|
||||||
|
System.err.println("colorSpace: " + colorSpace);
|
||||||
|
}
|
||||||
System.err.println("PSD: " + psd);
|
System.err.println("PSD: " + psd);
|
||||||
System.err.println(EXIFReader.HexDump.dump(segment.data));
|
System.err.println(EXIFReader.HexDump.dump(segment.data));
|
||||||
}
|
}
|
||||||
|
@ -41,4 +41,7 @@ public interface PSD {
|
|||||||
|
|
||||||
/** IPTC image resource id. */
|
/** IPTC image resource id. */
|
||||||
int RES_IPTC_NAA = 0x0404;
|
int RES_IPTC_NAA = 0x0404;
|
||||||
|
|
||||||
|
/** ICC profile image resource id. */
|
||||||
|
int RES_ICC_PROFILE = 0x040f;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user