内核技术中文网»首页 论坛 圈点 查看内容

0 评论

0 收藏

分享

Qt C++ 写一个程序 对本地jpg图像 批量增加图像 亮度

以下是一个使用Qt C++编写的程序示例,用于批量增加本地jpg图像的亮度:

#include <QCoreApplication>
#include <QImage>
#include <QDir>

void adjustBrightness(const QString& filePath, int delta)
{
    QImage image(filePath);
    if (image.isNull()) {
        qDebug() << "Failed to load image: " << filePath;
        return;
    }

    // 调整亮度
    for (int y = 0; y < image.height(); ++y) {
        QRgb* scanLine = reinterpret_cast<QRgb*>(image.scanLine(y));
        for (int x = 0; x < image.width(); ++x) {
            QColor color(scanLine[x]);
            color = color.lighter(delta); // 根据delta调整亮度
            scanLine[x] = color.rgb();
        }
    }

    // 保存修改后的图像
    QString outputPath = QCoreApplication::applicationDirPath() + "/output/" + QFileInfo(filePath).fileName();
    if (!image.save(outputPath)) {
        qDebug() << "Failed to save image: " << outputPath;
        return;
    }

    qDebug() << "Processed image saved to: " << outputPath;
}

void processImages(const QString& directory, int brightnessDelta)
{
    QDir dir(directory);
    QStringList filters;
    filters << "*.jpg"; // 只处理jpg格式图片
    dir.setNameFilters(filters);

    QFileInfoList fileList = dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot);

   foreach (const QFileInfo &fileInfo, fileList) {
       adjustBrightness(fileInfo.filePath(), brightnessDelta);
   }
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

   QString directoryPath = "your_directory_path"; // 输入你的图片目录路径
   int brightnessDelta = 50; // 调整亮度的增量值,可以根据需要修改

   processImages(directoryPath, brightnessDelta);

   return a.exec();
}

请将上述代码中的your_directory_path替换为你实际存放图片的目录路径。该程序会遍历指定目录下的所有jpg格式图像,并对每张图像进行亮度调整,并保存到output文件夹下。调整亮度的增量值可以通过brightnessDelta参数进行设置。<br/><br/><br/><p style="color:#CCCCCC;font-size:12px;">内容由零声教学AI助手提供,问题来源于学员提问</p>

回复

举报 使用道具

全部回复
暂无回帖,快来参与回复吧
主题 6306
回复 0
粉丝 0
扫码获取每晚技术直播链接
快速回复 返回顶部 返回列表