You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
exiv2/src/bigtiffimage.cpp

67 lines
1.3 KiB
C++

#include "bigtiffimage.hpp"
namespace Exiv2
{
namespace
{
class BigTiffImage: public Image
{
public:
BigTiffImage(BasicIo::AutoPtr io): Image(ImageType::bigtiff, mdExif, io) {}
virtual ~BigTiffImage() {}
// overrides
void readMetadata()
{
}
void writeMetadata()
{
}
std::string mimeType() const
{
}
};
}
Image::AutoPtr newBigTiffInstance(BasicIo::AutoPtr io, bool)
{
return Image::AutoPtr(new BigTiffImage(io));
}
bool isBigTiffType(BasicIo& io, bool)
{
byte header[2];
io.read(header, 2);
ByteOrder byteOrder = invalidByteOrder;
if (header[0] == 'I' && header[1] == 'I')
byteOrder = littleEndian;
else if (header[0] == 'M' && header[1] == 'M')
byteOrder = bigEndian;
bool isBigTiff = false;
if (byteOrder != invalidByteOrder)
{
byte version[2];
io.read(version, 2);
const uint16_t magic = getUShort(version, byteOrder);
isBigTiff = magic == 0x2A || magic == 0x2B;
}
return isBigTiff;
}
}