@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.