初识Qt图像

初识Qt图像

  • 了解QPainter、QImage

.h

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_firstqt.h"

class FirstQt : public QMainWindow
{
    Q_OBJECT

public:
    FirstQt(QWidget *parent = Q_NULLPTR);
    //重载绘制画面函数
    void paintEvent(QPaintEvent* ev) override;

private:
    Ui::FirstQtClass ui;
};

.cpp

#include "firstqt.h"
#include <QPainter>
#include <QImage>
static int w = 1280;
static int h = 720;
FirstQt::FirstQt(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    resize(w, h);
}

void FirstQt::paintEvent(QPaintEvent* ev)
{
    QImage img(w, h, QImage::Format_RGB888);
    auto d = img.bits();        //获取img中的数据bit
    uchar a = 255;
    for (int j = 0; j < h ; j++) {
        int b = j * w * 3;
        a--;
        for (int i = 0; i < w * 3; i += 3) {
            d[b + i] = a;       //R
            d[b + i + 1] = 0;   //G
            d[b + i + 2] = 0;   //B
        }
    }
    QPainter p;
    p.begin(this);
    p.drawImage(0, 0, img);

    p.end();
}

环境

VS2019;Qt5.14.2msvc2017

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值