Как уменьшить размер изображения в qt?

Пользователь

от alisa.bahringer , в категории: C/C++ , 2 года назад

Как уменьшить размер изображения в qt?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от bart , 2 года назад

@alisa.bahringer 

Есть несколько способов уменьшить размер изображения в Qt:

  1. Используйте метод scaled класса QPixmap:
1
2
QPixmap originalPixmap("image.png");
QPixmap scaledPixmap = originalPixmap.scaled(QSize(100, 100), Qt::KeepAspectRatio);


В результате будет создана новая QPixmap scaledPixmap, размер которой не превышает 100x100 пикселей, но соотношение сторон останется тем же.

  1. Используйте метод scaled класса QImage:
1
2
QImage originalImage("image.png");
QImage scaledImage = originalImage.scaled(QSize(100, 100));


Этот метод также создает новое изображение, но в отличие от scaled из QPixmap, сохраняет соотношение сторон масштабируемого изображения.

  1. Используйте метод setFixedSize у QLabel или 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, что приводит к масштабированию изображения до нужного размера. Соотношение сторон сохраняется.

Пользователь

от lamar , 8 месяцев назад

@alisa.bahringer 

Дополнительно, вы также можете использовать метод transform класса QPixmap, чтобы уменьшить размер изображения с помощью преобразования масштабирования:

1
2
QPixmap originalPixmap("image.png");
QPixmap scaledPixmap = originalPixmap.transformed(QTransform().scale(0.5, 0.5), Qt::SmoothTransformation);


Этот метод масштабирует изображение вдвое с помощью преобразования масштабирования с использованием встроенной матрицы масштабирования. Вы также можете настраивать коэффициенты масштабирования для более крупного или меньшего изменения размера.


Надеюсь, это поможет вам уменьшить размер изображения в Qt.