mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2026-05-28 00:00:03 -04:00
#300 TIFF old style JPEG inconsistent metadata
This commit is contained in:
+14
-3
@@ -1036,7 +1036,7 @@ public final class TIFFImageReader extends ImageReaderBase {
|
||||
// TODO: If we have non-standard reference B/W or yCbCr coefficients,
|
||||
// we might still have to do extra color space conversion...
|
||||
if (needsCSConversion == null) {
|
||||
needsCSConversion = needsCSConversion(interpretation, jpegReader.getImageMetadata(0));
|
||||
needsCSConversion = needsCSConversion(interpretation, readJPEGMetadataSafe(jpegReader));
|
||||
}
|
||||
|
||||
if (!needsCSConversion) {
|
||||
@@ -1174,7 +1174,7 @@ public final class TIFFImageReader extends ImageReaderBase {
|
||||
jpegParam.setSourceSubsampling(xSub, ySub, 0, 0);
|
||||
|
||||
if (needsCSConversion == null) {
|
||||
needsCSConversion = needsCSConversion(interpretation, jpegReader.getImageMetadata(0));
|
||||
needsCSConversion = needsCSConversion(interpretation, readJPEGMetadataSafe(jpegReader));
|
||||
}
|
||||
|
||||
if (!needsCSConversion) {
|
||||
@@ -1279,7 +1279,7 @@ public final class TIFFImageReader extends ImageReaderBase {
|
||||
Point offset = new Point(col - srcRegion.x, row - srcRegion.y);
|
||||
|
||||
if (needsCSConversion == null) {
|
||||
needsCSConversion = needsCSConversion(interpretation, jpegReader.getImageMetadata(0));
|
||||
needsCSConversion = needsCSConversion(interpretation, readJPEGMetadataSafe(jpegReader));
|
||||
}
|
||||
|
||||
if (!needsCSConversion) {
|
||||
@@ -1345,6 +1345,17 @@ public final class TIFFImageReader extends ImageReaderBase {
|
||||
return destination;
|
||||
}
|
||||
|
||||
private IIOMetadata readJPEGMetadataSafe(final ImageReader jpegReader) throws IOException {
|
||||
try {
|
||||
return jpegReader.getImageMetadata(0);
|
||||
}
|
||||
catch (IIOException e) {
|
||||
processWarningOccurred("Could not read metadata metadata JPEG compressed TIFF: " + e.getMessage() + " colors may look incorrect");
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean needsCSConversion(final int photometricInterpretation, final IIOMetadata imageMetadata) throws IOException {
|
||||
if (imageMetadata == null) {
|
||||
// Assume we're ok
|
||||
|
||||
Reference in New Issue
Block a user