【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

相关文章

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

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工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编