[vlc-commits] [Git][videolan/vlc][master] qt/covergenerator: Restore QImage::scaled implementation
Jean-Baptiste Kempf (@jbk)
gitlab at videolan.org
Mon Jun 20 07:55:53 UTC 2022
Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC
Commits:
470005c7 by Benjamin Arnaud at 2022-06-20T07:43:50+00:00
qt/covergenerator: Restore QImage::scaled implementation
QImage::scaled provides a better quality compared to QImageReader::setScaledSize.
Except for svg(s).
This implementation that was removed in a prior commit should stay relevant in the future.
- - - - -
1 changed file:
- modules/gui/qt/util/covergenerator.cpp
Changes:
=====================================
modules/gui/qt/util/covergenerator.cpp
=====================================
@@ -234,8 +234,31 @@ void CoverGenerator::drawImage(QPainter & painter, const QString & fileName, con
QSize size = reader.size().scaled(target.width(),
target.height(), Qt::KeepAspectRatioByExpanding);
- reader.setScaledSize(size);
- QImage image = reader.read();
+ QImage image;
+
+ // NOTE: QImage::scaled provides a better quality compared to QImageReader::setScaledSize.
+ // Except for svg(s).
+ if (fileName.endsWith(".svg", Qt::CaseInsensitive))
+ {
+ if (size.isEmpty() == false)
+ {
+ reader.setScaledSize(size);
+ }
+
+ if (reader.read(&image) == false)
+ return;
+ }
+ else
+ {
+ if (reader.read(&image) == false)
+ return;
+
+ if (size.isEmpty() == false)
+ {
+ // NOTE: We are using Qt::SmoothTransformation to favor quality.
+ image = image.scaled(size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+ }
+ }
int x = std::ceil((image.width() - target.width()) / 2.);
int y = std::ceil((image.height() - target.height()) / 2.);
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/470005c71dcef599ad003ddfab3767a336e40117
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/470005c71dcef599ad003ddfab3767a336e40117
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list