zoukankan      html  css  js  c++  java
  • QT使用QPainter加水印

    QT使用QPainter加水印 加水印的代码
    //为QPixmap添加水印
    void MainWindow::addMask(QPixmap& pm, const QString& text)
    {
        QPainter painter(&pm);
        int fontSize = 25, spacing = 10;
        QFont font("微软雅黑", fontSize, QFont::Thin);
        font.setLetterSpacing(QFont::AbsoluteSpacing, spacing);
        painter.setFont(font);
        painter.setPen(QColor(150, 150, 150));
        painter.translate(pm.width() / 2, -pm.width() / 2);//调整位置
        painter.rotate(45);
        int squareEdgeSize = pm.width() * sin(45.0) + pm.height() * sin(45.0);//对角线长度
        int hCount = squareEdgeSize / ((fontSize + spacing) * (text.size() + 1)) + 1;
        int x = squareEdgeSize / hCount + (fontSize + spacing) * 3;
        int y = x / 2;
    
        for (int i = 0; i < hCount; i++)
        {
            for (int j = 0; j < hCount * 2; j++)
            {
               painter.drawText(x * i, y * j,text);
            }
        }
    }
    //给某个路径的图片添加水印
    void MainWindow::addMaskByPath(QString& imgPath, const QString& text)
    {
        QFileInfo newPicture(imgPath);
        QPixmap qpm = FaceIdentityUtils::readImage(imgPath);
        MainWindow::addMask(qpm, text);
        QFile file(imgPath);
        file.open(QIODevice::WriteOnly);
        qpm.save(&file, "JPEG");
        file.close();
    }
    
  • 相关阅读:
    Set和Multiset 怎么用咧↓↓↓
    sql server 复习笔记2
    sql server 复习笔记1
    数据分析相关学习 -1 numpy
    复习2
    scrapy 4 学习 crawl spider
    scrapy3 中间件的使用
    scapy2 爬取全站,以及使用post请求
    复习1
    scrapy 学习笔记2 数据持久化
  • 原文地址:https://www.cnblogs.com/NightFrost/p/11490768.html
Copyright © 2011-2022 走看看