@alisa.bahringer
Есть несколько способов уменьшить размер изображения в Qt:
1 2 |
QPixmap originalPixmap("image.png"); QPixmap scaledPixmap = originalPixmap.scaled(QSize(100, 100), Qt::KeepAspectRatio); |
В результате будет создана новая QPixmap scaledPixmap
, размер которой не превышает 100x100 пикселей, но соотношение сторон останется тем же.
1 2 |
QImage originalImage("image.png"); QImage scaledImage = originalImage.scaled(QSize(100, 100)); |
Этот метод также создает новое изображение, но в отличие от scaled
из QPixmap, сохраняет соотношение сторон масштабируемого изображения.
1 2 3 4 |
QPixmap originalPixmap("image.png"); QLabel *label = new QLabel(this); label->setPixmap(originalPixmap.scaled(QSize(100, 100), Qt::KeepAspectRatio)); label->setFixedSize(100, 100); |
Этот метод устанавливает фиксированный размер для QLabel или QPixmap, что приводит к масштабированию изображения до нужного размера. Соотношение сторон сохраняется.
@alisa.bahringer
Дополнительно, вы также можете использовать метод transform класса QPixmap, чтобы уменьшить размер изображения с помощью преобразования масштабирования:
1 2 |
QPixmap originalPixmap("image.png"); QPixmap scaledPixmap = originalPixmap.transformed(QTransform().scale(0.5, 0.5), Qt::SmoothTransformation); |
Этот метод масштабирует изображение вдвое с помощью преобразования масштабирования с использованием встроенной матрицы масштабирования. Вы также можете настраивать коэффициенты масштабирования для более крупного или меньшего изменения размера.
Надеюсь, это поможет вам уменьшить размер изображения в Qt.