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
BIN
autotests/read/tga/bottom_left.tga
Normal file
After Width: | Height: | Size: 226 KiB |
5
autotests/read/tga/bottom_left.tga.json
Normal file
@ -0,0 +1,5 @@
|
||||
[
|
||||
{
|
||||
"fileName" : "orientation.png"
|
||||
}
|
||||
]
|
BIN
autotests/read/tga/bottom_right.tga
Normal file
After Width: | Height: | Size: 226 KiB |
5
autotests/read/tga/bottom_right.tga.json
Normal file
@ -0,0 +1,5 @@
|
||||
[
|
||||
{
|
||||
"fileName" : "orientation.png"
|
||||
}
|
||||
]
|
BIN
autotests/read/tga/devarea.tga
Normal file
After Width: | Height: | Size: 80 KiB |
56
autotests/read/tga/devarea.tga.json
Normal file
@ -0,0 +1,56 @@
|
||||
[
|
||||
{
|
||||
"fileName" : "extarea.png",
|
||||
"skipSequential" : true,
|
||||
"metadata" : [
|
||||
{
|
||||
"key" : "Author",
|
||||
"value" : "KDE Project"
|
||||
},
|
||||
{
|
||||
"key" : "Comment",
|
||||
"value" : "TV broadcast test image."
|
||||
},
|
||||
{
|
||||
"key" : "Altitude",
|
||||
"value" : "34"
|
||||
},
|
||||
{
|
||||
"key" : "Copyright",
|
||||
"value" : "@2025 KDE Project"
|
||||
},
|
||||
{
|
||||
"key" : "Latitude",
|
||||
"value" : "44.6478"
|
||||
},
|
||||
{
|
||||
"key" : "LensManufacturer",
|
||||
"value" : "KDE Glasses"
|
||||
},
|
||||
{
|
||||
"key" : "LensModel",
|
||||
"value" : "A1234"
|
||||
},
|
||||
{
|
||||
"key" : "Longitude",
|
||||
"value" : "10.9254"
|
||||
},
|
||||
{
|
||||
"key" : "Manufacturer",
|
||||
"value" : "KFramework"
|
||||
},
|
||||
{
|
||||
"key" : "Model",
|
||||
"value" : "KImageFormats"
|
||||
},
|
||||
{
|
||||
"key" : "Software",
|
||||
"value" : "LIFE Pro 2.18.30 (Linux)"
|
||||
}
|
||||
],
|
||||
"resolution" : {
|
||||
"dotsPerMeterX" : 11811,
|
||||
"dotsPerMeterY" : 5906
|
||||
}
|
||||
}
|
||||
]
|
BIN
autotests/read/tga/extarea.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
autotests/read/tga/extarea.tga
Normal file
32
autotests/read/tga/extarea.tga.json
Normal file
@ -0,0 +1,32 @@
|
||||
[
|
||||
{
|
||||
"fileName" : "extarea.png",
|
||||
"skipSequential" : true,
|
||||
"metadata" : [
|
||||
{
|
||||
"key" : "Title",
|
||||
"value" : "Test Card"
|
||||
},
|
||||
{
|
||||
"key" : "Author",
|
||||
"value" : "KDE Project"
|
||||
},
|
||||
{
|
||||
"key" : "ModificationDate",
|
||||
"value" : "2025-08-21T07:32:45"
|
||||
},
|
||||
{
|
||||
"key" : "Comment",
|
||||
"value" : "TV broadcast test image."
|
||||
},
|
||||
{
|
||||
"key" : "Software",
|
||||
"value" : "LIFE Pro 2.18.31 (Linux)"
|
||||
}
|
||||
],
|
||||
"resolution" : {
|
||||
"dotsPerMeterX" : 3937,
|
||||
"dotsPerMeterY" : 3937
|
||||
}
|
||||
}
|
||||
]
|
BIN
autotests/read/tga/orientation.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
autotests/read/tga/rgb16.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
autotests/read/tga/rgb16.tga
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
autotests/read/tga/top_left.tga
Normal file
After Width: | Height: | Size: 226 KiB |
5
autotests/read/tga/top_left.tga.json
Normal file
@ -0,0 +1,5 @@
|
||||
[
|
||||
{
|
||||
"fileName" : "orientation.png"
|
||||
}
|
||||
]
|
BIN
autotests/read/tga/top_right.tga
Normal file
After Width: | Height: | Size: 226 KiB |
5
autotests/read/tga/top_right.tga.json
Normal file
@ -0,0 +1,5 @@
|
||||
[
|
||||
{
|
||||
"fileName" : "orientation.png"
|
||||
}
|
||||
]
|