DtkGui
DTK Gui module
|
DImageHandler 提供图像处理,读取、保存、旋转、滤镜等。 更多...
Public 成员函数 | |
DImageHandler (QObject *parent=nullptr) | |
构造 DImageHandler 实例,并指定父控件 | |
~DImageHandler () | |
销毁 DImageHandler 实例 | |
void | setFileName (const QString &fileName) |
设置当前处理的图片文件路径 | |
QString | fileName () const |
返回当前处理的图片文件路径 | |
QImage | readImage () |
从设置的图片文件路径中读取图片 | |
QImage | thumbnail (const QSize &size, Qt::AspectRatioMode mode) |
获取当前处理图片指定大小的缩略图,可调整宽高比适配模式 | |
QString | imageFormat () const |
返回当前设置图片文件的格式,若未设置文件路径,返回空字符串 | |
QSize | imageSize () |
返回当前处理的图片尺寸,若未设置图片文件或加载失败,返回空图片尺寸 (-1, -1) | |
QHash< QString, QString > | findAllMetaData () |
查询图片包含的所有元数据,在动态加载 FreeImage 库后有效 | |
void | clearCache () |
清空缓存数据,释放缓存的图片和错误信息 | |
bool | saveImage (const QString &fileName, const QString &format=QString()) |
保存当前处理的图片至文件,可指定保存的图片格式, 若存在错误,将返回 false ,错误信息通过 lastError() 获取 | |
bool | saveImage (const QImage &image, const QString &fileName, const QString &format=QString()) |
保存图片至文件,可指定保存的图片格式, 若存在错误,将返回 false ,错误信息通过 lastError() 获取 | |
bool | rotateImage (QImage &image, int angle) |
顺时针旋转图片,若存在错误,将返回 false ,错误信息通过 lastError() 获取 | |
bool | rotateImageFile (const QString &fileName, int angle) |
顺时针旋转图片文件中的图片 | |
bool | isReadable () const |
返回当前设置的图片文件是否可读取,判断基于图片格式,fileName() 为空时返回 false | |
bool | isWriteable () const |
返回当前设置的图片文件是否可写入,判断基于图片格式,fileName() 为空时返回 false | |
bool | isRotatable () const |
返回当前设置的图片文件是否可旋转,判断基于图片格式,fileName() 为空时返回 false | |
QString | lastError () const |
返回最近一次错误的详细信息 | |
静态 Public 成员函数 | |
static QStringList | supportFormats () |
返回当前环境下 DImageHandler 可支持的图片格式,可动态加载 FreeImage 库以支持更多图片格式 | |
static QString | detectImageFormat (const QString &fileName) |
根据文件名称及文件内容检测图片格式 | |
static QImage | oldColorFilter (const QImage &img) |
为图片设置老照片滤镜并返回处理图片实例 | |
static QImage | warmColorFilter (const QImage &img, int intensity=30) |
为图片设置暖色滤镜并返回处理图片实例 | |
static QImage | coolColorFilter (const QImage &img, int intensity=30) |
为图片设置冷色滤镜并返回处理图片实例 | |
static QImage | grayScaleColorFilter (const QImage &img) |
为图片设置灰色滤镜并返回处理图片实例 | |
static QImage | antiColorFilter (const QImage &img) |
为图片设置反色滤镜并返回处理图片实例 | |
static QImage | metalColorFilter (const QImage &img) |
为图片设置金属风格滤镜并返回处理图片实例 | |
static QImage | bilateralFilter (const QImage &img, double spatialDecay=0.02, double photometricStandardDeviation=10) |
对图片进行双边滤波处理,可保持边界并去除噪点,可用于磨皮等处理 | |
static QImage | contourExtraction (const QImage &img) |
提取图片轮廓 | |
static QImage | binaryzation (const QImage &img) |
对图片进行二值化处理 | |
static QImage | grayScale (const QImage &img) |
取得灰阶图片 | |
static QImage | laplaceSharpen (const QImage &img) |
拉普拉斯锐化处理 | |
static QImage | sobelEdgeDetector (const QImage &img) |
sobel边缘检测处理,用于图片锐化 | |
static QImage | changeLightAndContrast (const QImage &img, int light=100, int contrast=150) |
变更图片的亮度和对比度并返回处理图片实例 | |
static QImage | changeBrightness (const QImage &img, int brightness) |
调整图片亮度并返回处理图片实例,取值范围 -255 ~ 255 | |
static QImage | changeTransparency (const QImage &img, int transparency) |
调整图片透明度并返回处理图片实例,取值范围 0 ~ 255 | |
static QImage | changeStauration (const QImage &img, int saturation) |
调整图片饱和度并返回处理图片实例,取值范围 -100 ~ 100 | |
static QImage | replacePointColor (const QImage &img, QColor oldColor, QColor newColor) |
遍历图片所有像素点,替换图片像素点颜色 | |
static QImage | flipHorizontal (const QImage &img) |
水平翻转图片 | |
static QImage | flipVertical (const QImage &img) |
垂直翻转图片 | |
DImageHandler 提供图像处理,读取、保存、旋转、滤镜等。
提供多种格式图片的读取、保存,允许对部分格式进行旋转。提供多种滤镜、锐化、二值化等图像处理算法。 通过 DImageHandler::setFileName
设置当前处理的图片文件路径,通过 DImageHandler::readImage
取得图片数据,通过 DImageHandler::thumbnail
取得图片缩略图。设置文件路径将不会立即加载图片, 将在需要图片数据时读取,当不需要缓存数据时,可通过 DImageHandler::clearCache
清除缓存数据。
支持拓展的图片格式,编译时会判断环境是否存在依赖包,安装 libfreeimage-dev 及 libraw-dev , 设置编译选项 DTK_DISABLE_EX_IMAGE_FORMAT=OFF 后将开启拓展图片格式支持。
不同包构建环境默认策略不同,在 debian 和 linglong 构建环境默认依赖 libfreeimage-dev 及 libraw-dev , 支持拓展图片格式,其它环境需手动安装。
可在程序根目录 ./tools/image-handler 中查看 image-handler 工具项目。 image-handler 工具可用于提取图像信息、旋转图像、设置图像滤镜等。
选项 | 描述 |
---|---|
-h, –help | 显示工具帮助信息 |
-r, –rotate <degresses> | 根据设置角度旋转图片,旋转角度需为 90度 的倍数 |
-o, –output <file> | 保存处理后的文件到指定路径 |
-f <filter> | 为图片设置滤镜,可选图片滤镜包括 old, warm, cool, gray, anticolor, metal |
-l, –list | 列出所有图片的格式 |
-e | 列出所有图片的详细信息,结合 -l 使用 |
|
explicit |
构造 DImageHandler 实例,并指定父控件
[in] | parent | 作为实例的父控件 |
|
static |
为图片设置反色滤镜并返回处理图片实例
[in] | img | 待处理的图片实例 |
|
static |
对图片进行双边滤波处理,可保持边界并去除噪点,可用于磨皮等处理
[in] | img | 待处理的图片实例 |
[in] | spatialDecay | 空间衰减值,用于双边滤波的空域信息,默认 0.02 |
[in] | photometricStandardDeviation | 光度标准差值,用于双边滤波的值域信息, 默认 10 |
|
static |
对图片进行二值化处理
[in] | img | 待处理的图片实例 |
|
static |
调整图片亮度并返回处理图片实例,取值范围 -255 ~ 255
[in] | img | 待处理的图片实例 |
[in] | brightness | 图片亮度 |
|
static |
变更图片的亮度和对比度并返回处理图片实例
[in] | img | 待处理的图片实例 |
[in] | light | 调整图片亮度,取值范围 0 ~ 300 |
[in] | constrase | 调整图片对比度,取值范围 0 ~ 300 |
|
static |
调整图片饱和度并返回处理图片实例,取值范围 -100 ~ 100
[in] | img | 待处理的图片实例 |
[in] | saturation | 图片饱和度 |
|
static |
调整图片透明度并返回处理图片实例,取值范围 0 ~ 255
[in] | img | 待处理的图片实例 |
[in] | transparency | 图片透明度 |
|
static |
提取图片轮廓
[in] | img | 待处理的图片实例 |
|
static |
为图片设置冷色滤镜并返回处理图片实例
[in] | img | 待处理的图片实例 |
[in] | intensity | 滤镜处理强度,取值范围 -255 ~ 255 ,默认30 |
|
static |
根据文件名称及文件内容检测图片格式
[in] | fileName | 图片文件路径 |
QString Dtk::Gui::DImageHandler::fileName | ( | ) | const |
返回当前处理的图片文件路径
QHash< QString, QString > Dtk::Gui::DImageHandler::findAllMetaData | ( | ) |
查询图片包含的所有元数据,在动态加载 FreeImage 库后有效
|
static |
水平翻转图片
[in] | img | 待处理的图片实例 |
|
static |
垂直翻转图片
[in] | img | 待处理的图片 |
|
static |
取得灰阶图片
[in] | img | 待处理的图片实例 |
|
static |
为图片设置灰色滤镜并返回处理图片实例
[in] | img | 待处理的图片实例 |
QString Dtk::Gui::DImageHandler::imageFormat | ( | ) | const |
返回当前设置图片文件的格式,若未设置文件路径,返回空字符串
QSize Dtk::Gui::DImageHandler::imageSize | ( | ) |
返回当前处理的图片尺寸,若未设置图片文件或加载失败,返回空图片尺寸 (-1, -1)
bool Dtk::Gui::DImageHandler::isReadable | ( | ) | const |
返回当前设置的图片文件是否可读取,判断基于图片格式,fileName() 为空时返回 false
bool Dtk::Gui::DImageHandler::isRotatable | ( | ) | const |
返回当前设置的图片文件是否可旋转,判断基于图片格式,fileName() 为空时返回 false
bool Dtk::Gui::DImageHandler::isWriteable | ( | ) | const |
返回当前设置的图片文件是否可写入,判断基于图片格式,fileName() 为空时返回 false
|
static |
拉普拉斯锐化处理
[in] | img | 待处理的图片实例 |
QString Dtk::Gui::DImageHandler::lastError | ( | ) | const |
返回最近一次错误的详细信息
|
static |
为图片设置金属风格滤镜并返回处理图片实例
[in] | img | 待处理的图片实例 |
|
static |
为图片设置老照片滤镜并返回处理图片实例
[in] | img | 待处理的图片实例 |
QImage Dtk::Gui::DImageHandler::readImage | ( | ) |
|
static |
遍历图片所有像素点,替换图片像素点颜色
[in] | img | 待处理的图片实例 |
[in] | oldColor | 旧像素颜色 |
[in] | newColor | 新像素颜色 |
bool Dtk::Gui::DImageHandler::rotateImage | ( | QImage & | image, |
int | angle | ||
) |
顺时针旋转图片,若存在错误,将返回 false ,错误信息通过 lastError() 获取
[in,out] | image | 图片实例 |
[in] | angle | 图片旋转角度,必须以90度为倍数 |
bool Dtk::Gui::DImageHandler::rotateImageFile | ( | const QString & | fileName, |
int | angle | ||
) |
顺时针旋转图片文件中的图片
读取 fileName 图片文件,顺时针旋转图片 angle 度,并将图片数据写回文件, 若存在错误,将返回 false ,错误信息通过 lastError() 获取
[in] | fileName | 图片文件路径 |
[in] | angle | 图片旋转角度,必须以90度为倍数 |
bool Dtk::Gui::DImageHandler::saveImage | ( | const QImage & | image, |
const QString & | fileName, | ||
const QString & | format = QString() |
||
) |
保存图片至文件,可指定保存的图片格式, 若存在错误,将返回 false ,错误信息通过 lastError() 获取
[in] | image | 图片实例 |
[in] | fileName | 保存的文件路径 |
[in] | format | 指定保存图片格式,默认为空,表示保持原格式 |
bool Dtk::Gui::DImageHandler::saveImage | ( | const QString & | fileName, |
const QString & | format = QString() |
||
) |
保存当前处理的图片至文件,可指定保存的图片格式, 若存在错误,将返回 false ,错误信息通过 lastError() 获取
[in] | fileName | 保存的文件路径 |
[in] | format | 指定保存图片格式,默认为空,表示保持原格式 |
void Dtk::Gui::DImageHandler::setFileName | ( | const QString & | fileName | ) |
设置当前处理的图片文件路径
[in] | fileName | 图片文件路径 |
|
static |
sobel边缘检测处理,用于图片锐化
[in] | img | 待处理的图片实例 |
|
static |
返回当前环境下 DImageHandler 可支持的图片格式,可动态加载 FreeImage 库以支持更多图片格式
QImage Dtk::Gui::DImageHandler::thumbnail | ( | const QSize & | size, |
Qt::AspectRatioMode | mode | ||
) |
获取当前处理图片指定大小的缩略图,可调整宽高比适配模式
[in] | 缩略图大小 |
|
static |
为图片设置暖色滤镜并返回处理图片实例
[in] | img | 待处理的图片实例 |
[in] | intensity | 滤镜处理强度,取值范围 -255 ~ 255 ,默认30 |