c++qt在图片上绘制圆以及文本并保存成jpg格式
时间: 2023-12-22 16:06:20 浏览: 60
要在图片上绘制圆和文本,可以使用Qt的QPainter类。以下是一个示例代码:
```c++
#include <QImage>
#include <QPainter>
int main()
{
// 加载图片
QImage image("input.jpg");
// 创建画家对象
QPainter painter(&image);
// 绘制圆
painter.setPen(Qt::red);
painter.drawEllipse(QPoint(100, 100), 50, 50);
// 绘制文本
painter.setPen(Qt::black);
painter.setFont(QFont("Arial", 20));
painter.drawText(QPoint(200, 200), "Hello World!");
// 保存图片
image.save("output.jpg");
return 0;
}
```
这个示例代码会从文件`input.jpg`中加载图片,然后在图片上绘制一个红色圆和一个黑色的文本,最后将修改后的图片保存为`output.jpg`文件。
如果你想要更加详细的了解Qt中如何绘制图形和文本,可以参考Qt官方文档中的QPainter类文档。
相关问题
并学习一些基本图形和文本的绘制并绘制到图片上呈现c++代码
下面是一个基本的C++代码示例,展示如何使用OpenCV库绘制基本图形和文本,并将其保存为图像文件:
```cpp
#include <opencv2/opencv.hpp>
int main()
{
// 创建一个空白图像
cv::Mat image(500, 500, CV_8UC3, cv::Scalar(255, 255, 255));
// 绘制一个圆形
cv::circle(image, cv::Point(250, 250), 100, cv::Scalar(0, 0, 255), -1);
// 绘制一个矩形
cv::rectangle(image, cv::Point(150, 150), cv::Point(350, 350), cv::Scalar(0, 255, 0), -1);
// 绘制一条直线
cv::line(image, cv::Point(100, 100), cv::Point(400, 400), cv::Scalar(255, 0, 0), 3);
// 添加文本
cv::putText(image, "Hello, World!", cv::Point(200, 450), cv::FONT_HERSHEY_SIMPLEX, 1, cv::Scalar(0, 0, 0), 2);
// 保存图像到文件
cv::imwrite("output.jpg", image);
return 0;
}
```
这段代码使用了OpenCV库来进行图像处理和绘制。首先创建一个空白图像,然后使用不同的函数绘制圆形、矩形和直线,并使用`putText`函数添加文本。最后,使用`imwrite`函数将图像保存为JPEG文件。
请确保已经安装了OpenCV库并将代码保存为`.cpp`文件,然后使用C++编译器编译和运行代码。执行后,将生成一个名为`output.jpg`的图像文件,其中包含绘制的图形和文本。
c++ qt按钮重绘成圆形
要将C++ Qt中的按钮重绘成圆形,您可以使用QPainter类在按钮部件上进行自定义绘制。下面是一个示例代码:
```cpp
#include <QApplication>
#include <QPushButton>
#include <QPainter>
#include <QPaintEvent>
class CircularButton : public QPushButton
{
public:
CircularButton(QWidget *parent = nullptr) : QPushButton(parent) {}
protected:
void paintEvent(QPaintEvent *event) override
{
QPushButton::paintEvent(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(Qt::NoPen);
painter.setBrush(Qt::blue);
painter.drawEllipse(rect());
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
CircularButton button;
button.resize(100, 100);
button.show();
return app.exec();
}
```
在这个示例中,我们创建了一个名为CircularButton的自定义按钮类,继承自QPushButton。在重写的paintEvent函数中,我们使用QPainter在按钮上绘制一个蓝色的圆形。通过设置painter的pen为Qt::NoPen,我们隐藏了按钮的边框。
然后,我们在主函数中创建了一个CircularButton对象,并设置了其大小。最后,我们展示了应用程序并启动了事件循环。当您运行这段代码时,您将看到一个圆形的按钮。
请注意,这只是一个简单的示例,您可以根据需要进行更多自定义。如果您有其他问题,请随时提问!
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)