【qt】抗锯齿和图像合成

2023-10-09 13:40
文章标签 图像 qt 合成 抗锯齿

本文主要是介绍【qt】抗锯齿和图像合成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

抗锯齿和图像合成

抗锯齿(Anti-aliased)

  1. 计算机上的图像都是以像素为单位显示的,像素其实就是一个一个的小方块,因此显示出来的图像只有完全水平或垂直的直线才可能直的,对于斜线,在未放大的情况下,看起来可能是直线没有抗锯齿,但一旦放大就必然会带有锯齿现象 在这里插入图片描述

  2. 把用于减少锯齿的技术称为抗锯齿、反走样或反锯齿。抗锯齿的算法有很多种,但基本原理其实就是对轮廓线的像素设置不同的灰度值使其产生模糊的效果,从而减轻锯齿

  3. 数学直线,是指在数学上的理想的直线,他是没有宽度的,然而实际上的图形,至少都需要占据一个像素的宽度

  4. 当启用抗锯齿时,像素将在数学定义的点的两侧对称渲染

  5. 未启用抗锯齿时的图形绘制原则 在这里插入图片描述

    1. 当使用一个像素宽的笔绘制图形时,像素将在数学定义的点的右侧和下方
    2. 当使用偶数个像素宽的笔绘制图形时,像素将在数学定义的点的周围对称地渲染
    3. 当使用奇数个像素宽的笔绘制图形时,多余的像素将在数学定义的点的右侧和下方。这与在一个像素宽时类似

枚举

  1. 描述渲染图像时的质量提示,QPainter默认是没有启动抗锯齿的
enum RenderHint {Antialiasing = 0x01,//若有可能,则开启抗锯齿处理TextAntialiasing = 0x02,//若有可能,则文本启用抗锯齿SmoothPixmapTransform = 0x04,//表示使用平滑的像素图变换算法(如双线性)HighQualityAntialiasing = 0x08,NonCosmeticDefaultPen = 0x10,Qt4CompatiblePainting = 0x20
};
Q_FLAG(RenderHint)Q_DECLARE_FLAGS(RenderHints, RenderHint)
Q_FLAG(RenderHints)

函数

  1. 渲染提示
    1. void setRenderHint(RenderHint hint, bool on = true)
    2. void setRenderHints(RenderHints hints, bool on = true)
    3. RenderHints renderHints() const
    4. bool testRenderHint(RenderHint hint) const

示例

抗锯齿处理

#ifndef WIDGET_H
#define WIDGET_H#include <QtWidgets>
class aDrawImage :public QWidget
{Q_OBJECT
private:void init(){}
protected:void paintEvent(QPaintEvent *event) override{Q_UNUSED(event)QPainter painter;painter.begin(this);painter.drawLine(11,11,77,111); //未开启抗锯齿painter.setRenderHint(QPainter::Antialiasing);painter.drawLine(44,11,111,111);//开启抗锯齿painter.setRenderHint(QPainter::SmoothPixmapTransform);painter.drawLine(77,11,144,111);//开启双线性抗锯齿painter.end();}public:aDrawImage(QWidget *p =nullptr) :QWidget(p){ init(); }
};#endif // WIDGET_H

这篇关于【qt】抗锯齿和图像合成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/173212

相关文章

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

Qt之QMessageBox的具体使用

《Qt之QMessageBox的具体使用》本文介绍Qt中QMessageBox类的使用,用于弹出提示、警告、错误等模态对话框,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.简单介绍3.常见函数4.按钮类型(QMessage::StandardButton)5.分步骤实现弹窗6.总结1.引言

Qt中Qfile类的使用

《Qt中Qfile类的使用》很多应用程序都具备操作文件的能力,包括对文件进行写入和读取,创建和删除文件,本文主要介绍了Qt中Qfile类的使用,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.QFile文件操作3.演示示例3.1实验一3.2实验二【演示 QFile 读写二进制文件的过程】4.

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

python+OpenCV反投影图像的实现示例详解

《python+OpenCV反投影图像的实现示例详解》:本文主要介绍python+OpenCV反投影图像的实现示例详解,本文通过实例代码图文并茂的形式给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前言二、什么是反投影图像三、反投影图像的概念四、反向投影的工作原理一、利用反向投影backproj

Python中edge-tts实现便捷语音合成

《Python中edge-tts实现便捷语音合成》edge-tts是一个功能强大的Python库,支持多种语言和声音选项,本文主要介绍了Python中edge-tts实现便捷语音合成,具有一定的参考价... 目录安装与环境设置文本转语音查找音色更改语音参数生成音频与字幕总结edge-tts 是一个功能强大的

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义