[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:
committed by
Thiago Marcos P. Santos
parent
01b06c2301
commit
e5c829b38c
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user