[Qt] use libjpeg-turbo rather than Qt's built-in JPEG decoding

libjpeg-turbo is typically 2-4x faster than the built-in decoding.
This commit is contained in:
Konstantin Käfer
2016-01-20 16:42:16 +01:00
committed by Thiago Marcos P. Santos
parent 01b06c2301
commit e5c829b38c
3 changed files with 14 additions and 0 deletions

View File

@@ -19,6 +19,7 @@ std::string encodePNG(const PremultipliedImage& pre) {
return std::string(array.constData(), array.size());
}
PremultipliedImage decodeJPEG(const uint8_t*, size_t);
PremultipliedImage decodeWebP(const uint8_t*, size_t);
PremultipliedImage decodeImage(const std::string& string) {
@@ -34,6 +35,14 @@ PremultipliedImage decodeImage(const std::string& string) {
}
}
// Use libjpeg-turbo rather than the built-in version of libjpeg.
if (size >= 2) {
uint16_t magic = ((data[0] << 8) | data[1]) & 0xffff;
if (magic == 0xFFD8) {
return decodeJPEG(data, size);
}
}
QImage image =
QImage::fromData(data, size)
.rgbSwapped()