mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-03 03:25:28 -04:00
TMI-JPEG: Regression fix for NPE in metadata if delegate returns null metadata.
This commit is contained in:
parent
1acc04eeaf
commit
c8061eb0c4
@ -1006,9 +1006,10 @@ public class JPEGImageReader extends ImageReaderBase {
|
|||||||
public IIOMetadata getImageMetadata(int imageIndex) throws IOException {
|
public IIOMetadata getImageMetadata(int imageIndex) throws IOException {
|
||||||
IIOMetadata metadata = delegate.getImageMetadata(imageIndex);
|
IIOMetadata metadata = delegate.getImageMetadata(imageIndex);
|
||||||
|
|
||||||
String format = metadata.getNativeMetadataFormatName();
|
if (metadata != null) {
|
||||||
IIOMetadataNode tree = (IIOMetadataNode) metadata.getAsTree(format);
|
String format = metadata.getNativeMetadataFormatName();
|
||||||
Node jpegVariety = tree.getElementsByTagName("JPEGvariety").item(0);
|
IIOMetadataNode tree = (IIOMetadataNode) metadata.getAsTree(format);
|
||||||
|
Node jpegVariety = tree.getElementsByTagName("JPEGvariety").item(0);
|
||||||
|
|
||||||
// TODO: Allow EXIF (as app1EXIF) in the JPEGvariety (sic) node.
|
// TODO: Allow EXIF (as app1EXIF) in the JPEGvariety (sic) node.
|
||||||
// As EXIF is (a subset of) TIFF, (and the EXIF data is a valid TIFF stream) probably use something like:
|
// As EXIF is (a subset of) TIFF, (and the EXIF data is a valid TIFF stream) probably use something like:
|
||||||
@ -1030,16 +1031,17 @@ public class JPEGImageReader extends ImageReaderBase {
|
|||||||
the version to the method/constructor used to obtain an IIOMetadata object.)
|
the version to the method/constructor used to obtain an IIOMetadata object.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
IIOMetadataNode app2ICC = new IIOMetadataNode("app2ICC");
|
IIOMetadataNode app2ICC = new IIOMetadataNode("app2ICC");
|
||||||
app2ICC.setUserObject(getEmbeddedICCProfile(true));
|
app2ICC.setUserObject(getEmbeddedICCProfile(true));
|
||||||
Node jpegVarietyFirstChild = jpegVariety.getFirstChild();
|
Node jpegVarietyFirstChild = jpegVariety.getFirstChild();
|
||||||
if (jpegVarietyFirstChild != null) {
|
if (jpegVarietyFirstChild != null) {
|
||||||
jpegVarietyFirstChild.appendChild(app2ICC);
|
jpegVarietyFirstChild.appendChild(app2ICC);
|
||||||
}
|
}
|
||||||
|
|
||||||
// new XMLSerializer(System.err, System.getProperty("file.encoding")).serialize(tree, false);
|
// new XMLSerializer(System.err, System.getProperty("file.encoding")).serialize(tree, false);
|
||||||
|
|
||||||
metadata.mergeTree(format, tree);
|
metadata.mergeTree(format, tree);
|
||||||
|
}
|
||||||
|
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user