TGA: Support for TGA specification 2.0

Adds TGA 2.0 compliance:
- Support for Extension Area, Developer Area and Footer (metadata support)
- Support for 15-bit and 16-bit per pixel images (both RGB and Indexed)
- Full support for rotation on reading (we cannot use Qt transformations because only a subset is part of the TGA specification)
- When writing you can choose the supported version (subType)
- Improved writing speed (approximately 10 times) and removed whole image conversions (significant memory savings)

It pass the [TrueVision TGA 2.0 conformance suite](https://github.com/zigimg/test-suite/tree/master/fixtures/tga).

Test changes:
- Read test: added ability to skip a specific test on sequential devices (via JSON behavior file)
- Write test: added the ability to set the subType when writing (via JSON properties file)

Closes #37
This commit is contained in:
Mirco Miranda
2025-08-23 11:20:09 +02:00
committed by Albert Astals Cid
parent f933cbe12d
commit 9c6c0c01ae
31 changed files with 1054 additions and 200 deletions

View File

@ -281,6 +281,12 @@ int main(int argc, char **argv)
continue;
}
if (seq && timg.skipSequentialDeviceTest()) {
QTextStream(stdout) << "SKIP : " << fi.fileName() << ": marked to be skipped on a sequential device (don't worry, it's ok)\n";
++skipped;
continue;
}
TemplateImage::TestFlags flags = TemplateImage::None;
QString comment;
QFileInfo expFileInfo = timg.compareImage(flags, comment);