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();
}
QT使用QPainter加水印的更多相关文章
- 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化
<?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...
- thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印
今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...
- 【转】WPF TextBox和PasswordBox加水印
Textbox加水印 Textbox加水印,需要一个VisualBrush和触发器验证Text是否为空,在空的时候设置背景的Brush就可以实现水印效果. <TextBox Name=" ...
- Web 上传图片加水印
上传图片加水印 需要使用控件FileUpload 上传按钮Image控件展示上传的图片,页面中拖入三个控件 <form id="form1" runat="serv ...
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
[强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...
- 使用iText对pdf做权限的操作(不允许修改,不允许复制,不允许另存为),并且加水印等
添加水印,并且增加权限 @Test public void addWaterMark() throws Exception{ String srcFile="D:\\work\\pdf\\w ...
- 用node.js给图片加水印
一.准备工作: 首先,确保你本地已经安装好了node环境.然后,我们进行图像编辑操作需要用到一个Node.js的库:images.这个库的地址是:https://github.com/zhangyua ...
- php 分享两种给图片加水印的方法
本文章向码农们介绍 php 给图片加水印的两种方法,感兴趣的码农可以参考一下本文章的源代码. 方法一:PHP最简单的加水印方法 <?php // http://www.manongjc.com ...
- Java图片处理(二)图片加水印
图片加水印,是通过图片重叠绘制实现的.实现代码如下: public static void press(String pressImg, String pressText, String target ...
随机推荐
- 【CV现状-3.2】纹理与材质
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计
Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计(服务订单履约系统) 说明: 电商之下,我们几乎能从电商平台上买到任何我们日常需要的商品,但是对于很多商品来说,用户购买发货后,只是整个交易流程 ...
- IDEA中使用Maven模板创建Maven WebApp项目并使用Tomact来运行项目
首先需要正确安装Maven和Tomact,Maven安装和Tomact安装步骤,参见别的文章. 一.创建Maven工作空间 点击Finish按钮后,耐心等待.直到出现BUILD SUCCESS为止. ...
- 【译】ModSecurity事务生命周期
本篇简要介绍ModSecurity Transaction Lifecycle,也即ModSecurity的事务生命周期. Transaction Lifecycle In ModSecurity, ...
- Android开发模版代码(4)——状态栏设置
下面的代码是基于开源项目SystemBarTint,我们需要添加其依赖 compile 'com.readystatesoftware.systembartint:systembartint:1.0. ...
- SAP中的数据库表索引
数据库表中的索引可以加快查询的速度.索引是数据库表字段的有序副本.附加的字段包含指向真实数据库表行的指针.排序可以使访问表行的速度变快,例如,可以使用二分搜索.数据库表至少有一个主索引,由它的key字 ...
- SpringMVC的自动配置解析
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developin ...
- Shell(七):文件包含
和其他语言一样,Shell 也可以包含外部脚本(类似python中import的功能).这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filenam ...
- Linux流量监控工具iftop & nload
本文简单介绍和演示Linux下两款流量监控工具iftop 和 nload的使用. 环境 # cat /etc/redhat-release CentOS Linux release (Core) # ...
- 记一次ES查询数据突然变为空的问题
基本环境 elasticsearch版本:6.3.1 客户端环境:kibana 6.3.4.Java8应用程序模块. 其中kibana主要用于数据查询诊断和查阅日志,Java8为主要的客户端,数据插入 ...