版权声明:转载请注明出处 https://blog.csdn.net/happy_single/article/details/88068389
继续讨论绘图设备,QImage适合多线程绘图。可以执行像素点操作。
重写Widget构造函数如下:
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//创建一个绘图设备,Format设置为背景透明
QImage image(400, 300, QImage::Format_ARGB32);
QPainter p;
p.begin(&image);
//绘图
p.drawImage(0, 0, QImage("../Image/noya.jpg"));
//像素点操作
for(int i = 0; i < 50; i++){
for(int j = 0; j < 50; j++){
image.setPixel(QPoint(i, j), qRgb(0, 255, 0));
}
}
p.end();
image.save("../image.jpg");
}
若不执行像素点操作,即代码中的嵌套for循环:
看样子和QPixmap的效果一样。
把左上角的50*50的区域置为绿色:
乃亚绿了。
整理自B站视频,侵删歉。