В настоящее время мы используем коммерческую библиотеку для рендеринга изображений с Windows. При отображении черно-белых изображений в размерах меньших, чем изображения исходного размера, эта библиотека серый масштабирует изображения так, что до сих пор большинство из них могут быть признаны:QImage dithering quality
Теперь я попробовал то же самое с 4.8 Применение Qt. В принципе, Что сделано звонит:
QImage mImage;
...
mImage.load(...);
...
painter.drawImage(paintRect, mImage, mImage.rect());
Где paintRect меньше mImage.rect(). Это хорошо работает, но выход гораздо меньше удовлетворения:
Я попробовал несколько renderHints (QPainter :: SmoothPixmapTransform, Сглаживание, HighQualityAntialiasing), а также преобразовал изображение с помощью
mImage = mImage.convertToFormat(QImage::Format_RGB32);
QPainter: : SmoothPixmapTransform, похоже, немного улучшил выход (его включили в снимок экрана). Все остальное ничего не меняет.
Я что-то не хватает?
Как можно улучшить изображение изображений с уменьшением размера?
Вы сохраняете соотношение сторон? вы попробовали предварительное масштабирование изображения с помощью 'QImage :: scaled' – UmNyobe
Соотношение сторон: не требуется нашим приложением, но в этих случаях я это сделал, да. Отсутствие предварительного масштабирования, пользователь увеличивает и уменьшает масштаб, и поэтому коэффициент масштабирования всегда изменяется. –