throws IOException {
TiffParser tiffParser = new TiffParser(stream);
if (! tiffParser.isValidHeader()) return false;
IFD ifd = tiffParser.getFirstIFD();
if (ifd == null) return false;
tiffParser.fillInIFD(ifd);
for (int tag: MINIMAL_TAGS)
try {
if (ifd.getIFDStringValue(tag) == null) return false;
} catch (FormatException e) {
return false;