如何在QT QWidgets C++中围绕图像中心旋转图像
How to rotate an image around its centre in QT QWidgets C++?
我正在尝试使用C++中的QWidgts围绕QT中的原点(中心)旋转图像。我在这里做了很多实验,但无论我做什么,图像都会在我不知道的任意位置旋转。请帮帮我。我是QT的新手。
void gaugeWithRedZoneImage::rotate()
{
QPixmap pixmap(*gaugeMainScreen->pixmap());
QMatrix rm;
rm.translate(0, 0);
rm.rotate(-360);
pixmap = pixmap.transformed(rm);
gaugeMainScreen->setPixmap(pixmap);
/*QTransform rotate_disc;
rotate_disc.translate(pixmap.width()/2.0 , pixmap.height()/2.0);
rotate_disc.rotate(-60);
rotate_disc.translate(-(pixmap.width()/2.0) , -(pixmap.height()/2.0));
pixmap = pixmap.transformed(rotate_disc);
gaugeMainScreen->setPixmap(pixmap);*/
}
形成QPixmap::transformed()
:的文档
变换变换在内部进行调整,以补偿不需要的平移;即所产生的像素图是包含原始像素图的所有变换点的最小像素图。
这意味着该方法通过附加画布来确保不会发生剪切。无论你的旋转中心是什么,画布的自动延伸几乎总是会导致感知到的变化。
图像示例可能有助于进一步诊断问题。
你有一些克服这个问题的可能性。其中之一是将容器设置为缩放其内容(可以使用方法setScaledContents())。在这种情况下,您必须保留原始图像,并在应用旋转时使用它,否则您的图像会越来越小。
相关文章:
- 程序仅正确旋转方形图像
- 在C++中使用OpenCV矩阵中的特征将图像旋转90度
- 无法编译此图像旋转代码
- 如何使用OpenCV从图像中检测旋转对象
- 逐像素旋转和翻转图像
- 顺时针旋转90度图像
- 使用接口上的C 旋转图像
- C++方法中的图像旋转
- 图像旋转单元测试
- 在QML中旋转图像时降低CPU使用情况
- 程序以转换图像和旋转
- CImg 库在旋转时创建失真的图像
- 旋转图像不起作用
- Openframeworks-通过OpenGL调用从图像中心旋转图像
- 无法根据opencv旋转矩形教程获得相同的图像结果
- 如何在QT QWidgets C++中围绕图像中心旋转图像
- 如何在 openGL 中旋转图像
- 轻松BMP旋转图像到任何角度
- 在 C 语言中旋转图像对象和指针
- 图像在OSG中随着旋转而消失