mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-10-10 08:24:20 -04:00
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:
committed by
Albert Astals Cid
parent
f933cbe12d
commit
9c6c0c01ae
@ -70,6 +70,15 @@ void setOptionalInfo(QImage &image, const QString &suffix)
|
||||
}
|
||||
}
|
||||
|
||||
QByteArray readSubType(const QString &suffix)
|
||||
{
|
||||
auto obj = readOptionalInfo(suffix);
|
||||
if (obj.isEmpty()) {
|
||||
return {};
|
||||
}
|
||||
return obj.value("subType").toString().toLatin1();
|
||||
}
|
||||
|
||||
bool checkOptionalInfo(QImage &image, const QString &suffix)
|
||||
{
|
||||
auto obj = readOptionalInfo(suffix);
|
||||
@ -157,6 +166,9 @@ int basicTest(const QString &suffix, bool lossless, bool ignoreDataCheck, bool s
|
||||
{
|
||||
QBuffer buffer(&writtenData);
|
||||
QImageWriter imgWriter(&buffer, format.constData());
|
||||
auto subType = readSubType(suffix);
|
||||
if (!subType.isEmpty())
|
||||
imgWriter.setSubType(subType);
|
||||
if (lossless) {
|
||||
imgWriter.setQuality(100);
|
||||
}
|
||||
|
Reference in New Issue
Block a user