mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-05 04:25:29 -04:00
Merge branch 'master' into webp
This commit is contained in:
commit
7b09ec8919
@ -1147,8 +1147,7 @@ public final class TIFFImageReader extends ImageReaderBase {
|
|||||||
// This initializes the tables and other internal settings for the reader,
|
// This initializes the tables and other internal settings for the reader,
|
||||||
// and is actually a feature of JPEG, see abbreviated streams:
|
// and is actually a feature of JPEG, see abbreviated streams:
|
||||||
// http://docs.oracle.com/javase/6/docs/api/javax/imageio/metadata/doc-files/jpeg_metadata.html#abbrev
|
// http://docs.oracle.com/javase/6/docs/api/javax/imageio/metadata/doc-files/jpeg_metadata.html#abbrev
|
||||||
IIOMetadata streamMetadata = jpegReader.getStreamMetadata();
|
jpegReader.getStreamMetadata();
|
||||||
new XMLSerializer(System.out, "UTF8").serialize(streamMetadata.getAsTree(streamMetadata.getNativeMetadataFormatName()), false);
|
|
||||||
}
|
}
|
||||||
else if (tilesDown * tilesAcross > 1) {
|
else if (tilesDown * tilesAcross > 1) {
|
||||||
processWarningOccurred("Missing JPEGTables for tiled/striped TIFF with compression: 7 (JPEG)");
|
processWarningOccurred("Missing JPEGTables for tiled/striped TIFF with compression: 7 (JPEG)");
|
||||||
|
@ -768,45 +768,7 @@ public final class TIFFImageWriter extends ImageWriterBase {
|
|||||||
entries.put(TIFF.TAG_SOFTWARE, new TIFFEntry(TIFF.TAG_SOFTWARE, "TwelveMonkeys ImageIO TIFF writer " + originatingProvider.getVersion()));
|
entries.put(TIFF.TAG_SOFTWARE, new TIFFEntry(TIFF.TAG_SOFTWARE, "TwelveMonkeys ImageIO TIFF writer " + originatingProvider.getVersion()));
|
||||||
entries.put(TIFF.TAG_ORIENTATION, new TIFFEntry(TIFF.TAG_ORIENTATION, 1)); // (optional)
|
entries.put(TIFF.TAG_ORIENTATION, new TIFFEntry(TIFF.TAG_ORIENTATION, 1)); // (optional)
|
||||||
|
|
||||||
if (ifd != null) {
|
mergeSafeMetadata(ifd, entries);
|
||||||
for (Entry entry : ifd) {
|
|
||||||
int tagId = (Integer) entry.getIdentifier();
|
|
||||||
|
|
||||||
switch (tagId) {
|
|
||||||
// Baseline
|
|
||||||
case TIFF.TAG_SUBFILE_TYPE:
|
|
||||||
case TIFF.TAG_OLD_SUBFILE_TYPE:
|
|
||||||
case TIFF.TAG_IMAGE_DESCRIPTION:
|
|
||||||
case TIFF.TAG_MAKE:
|
|
||||||
case TIFF.TAG_MODEL:
|
|
||||||
case TIFF.TAG_ORIENTATION:
|
|
||||||
case TIFF.TAG_X_RESOLUTION:
|
|
||||||
case TIFF.TAG_Y_RESOLUTION:
|
|
||||||
case TIFF.TAG_RESOLUTION_UNIT:
|
|
||||||
case TIFF.TAG_SOFTWARE:
|
|
||||||
case TIFF.TAG_DATE_TIME:
|
|
||||||
case TIFF.TAG_ARTIST:
|
|
||||||
case TIFF.TAG_HOST_COMPUTER:
|
|
||||||
case TIFF.TAG_COPYRIGHT:
|
|
||||||
// Extension
|
|
||||||
case TIFF.TAG_DOCUMENT_NAME:
|
|
||||||
case TIFF.TAG_PAGE_NAME:
|
|
||||||
case TIFF.TAG_X_POSITION:
|
|
||||||
case TIFF.TAG_Y_POSITION:
|
|
||||||
case TIFF.TAG_PAGE_NUMBER:
|
|
||||||
case TIFF.TAG_XMP:
|
|
||||||
// Private/Custom
|
|
||||||
case TIFF.TAG_IPTC:
|
|
||||||
case TIFF.TAG_PHOTOSHOP:
|
|
||||||
case TIFF.TAG_PHOTOSHOP_IMAGE_SOURCE_DATA:
|
|
||||||
case TIFF.TAG_PHOTOSHOP_ANNOTATIONS:
|
|
||||||
case TIFF.TAG_EXIF_IFD:
|
|
||||||
case TIFF.TAG_GPS_IFD:
|
|
||||||
case TIFF.TAG_INTEROP_IFD:
|
|
||||||
entries.put(tagId, entry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ColorModel colorModel = imageType.getColorModel();
|
ColorModel colorModel = imageType.getColorModel();
|
||||||
SampleModel sampleModel = imageType.getSampleModel();
|
SampleModel sampleModel = imageType.getSampleModel();
|
||||||
@ -903,6 +865,64 @@ public final class TIFFImageWriter extends ImageWriterBase {
|
|||||||
return new TIFFImageMetadata(entries.values());
|
return new TIFFImageMetadata(entries.values());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void mergeSafeMetadata(final Directory ifd, final Map<Integer, Entry> entries) {
|
||||||
|
if (ifd == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Entry entry : ifd) {
|
||||||
|
int tagId = (Integer) entry.getIdentifier();
|
||||||
|
|
||||||
|
switch (tagId) {
|
||||||
|
// Baseline
|
||||||
|
case TIFF.TAG_SUBFILE_TYPE:
|
||||||
|
case TIFF.TAG_OLD_SUBFILE_TYPE:
|
||||||
|
case TIFF.TAG_IMAGE_DESCRIPTION:
|
||||||
|
case TIFF.TAG_MAKE:
|
||||||
|
case TIFF.TAG_MODEL:
|
||||||
|
case TIFF.TAG_ORIENTATION:
|
||||||
|
case TIFF.TAG_X_RESOLUTION:
|
||||||
|
case TIFF.TAG_Y_RESOLUTION:
|
||||||
|
case TIFF.TAG_RESOLUTION_UNIT:
|
||||||
|
case TIFF.TAG_SOFTWARE:
|
||||||
|
case TIFF.TAG_DATE_TIME:
|
||||||
|
case TIFF.TAG_ARTIST:
|
||||||
|
case TIFF.TAG_HOST_COMPUTER:
|
||||||
|
case TIFF.TAG_COPYRIGHT:
|
||||||
|
// Extension
|
||||||
|
case TIFF.TAG_DOCUMENT_NAME:
|
||||||
|
case TIFF.TAG_PAGE_NAME:
|
||||||
|
case TIFF.TAG_X_POSITION:
|
||||||
|
case TIFF.TAG_Y_POSITION:
|
||||||
|
case TIFF.TAG_PAGE_NUMBER:
|
||||||
|
case TIFF.TAG_XMP:
|
||||||
|
// Private/Custom
|
||||||
|
case TIFF.TAG_IPTC:
|
||||||
|
case TIFF.TAG_PHOTOSHOP:
|
||||||
|
case TIFF.TAG_PHOTOSHOP_IMAGE_SOURCE_DATA:
|
||||||
|
case TIFF.TAG_PHOTOSHOP_ANNOTATIONS:
|
||||||
|
case TIFF.TAG_EXIF_IFD:
|
||||||
|
case TIFF.TAG_GPS_IFD:
|
||||||
|
case TIFF.TAG_INTEROP_IFD:
|
||||||
|
entries.put(tagId, entry);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// Allow most extension and custom tags
|
||||||
|
if (tagId >= 1000 && tagId < 50706) {
|
||||||
|
entries.put(tagId, entry);
|
||||||
|
}
|
||||||
|
// Skip 50 706 - 57 080 (DNG tags)
|
||||||
|
else if (tagId > 50780 && tagId < 65000) {
|
||||||
|
entries.put(tagId, entry);
|
||||||
|
}
|
||||||
|
// Always allow "the reusable range"
|
||||||
|
else if (tagId >= 65000 && tagId <= 65535) {
|
||||||
|
entries.put(tagId, entry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IIOMetadata getDefaultStreamMetadata(final ImageWriteParam param) {
|
public IIOMetadata getDefaultStreamMetadata(final ImageWriteParam param) {
|
||||||
return super.getDefaultStreamMetadata(param);
|
return super.getDefaultStreamMetadata(param);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user