Как заполнить пустоту прозрачным фоном при вращении QImage?
Когда я поворачиваю изображение в Qt, оно автоматически увеличивает изображение, чтобы инкапсулировать большие измерения, которые являются большими и интеллектуальными. Однако он заполняет вновь созданную пустоту белым цветом, который не является тем, что я хочу. Как я могу сделать его полностью прозрачным цветом?
Вот майский код.
QImage lSource("/path/to/an/image/file");
QTransform lRotation;
lRotation.rotate(30.0);
QImage lRotated(lSource.transformed(lRotation, Qt::SmoothTransformation));
ui.labelImage->setPixmap(QPixmap::fromImage(lRotated));
Большое спасибо!
1 ответ:
На основе моего комментария выше...
Я подозреваю, что пустые области повернутого изображения прозрачны, а белый цвет является фоновым цветом вашей метки. Если вы хотите установить определенный фон для вашего повернутого изображения, вы можете сделать следующее:
// Create rotated image. QImage lSource("source.png"); QTransform lRotation; lRotation.rotate(30.0); QImage lRotated(lSource.transformed(lRotation, Qt::SmoothTransformation)); // Create resulting image with specific background. QImage img(lRotated.size(), QImage::Format_ARGB32); img.fill(Qt::red); // Set the red background QPainter p(&img); p.drawImage(0, 0, lRotated); QLabel l; l.setPixmap(QPixmap::fromImage(img)); l.show();