以下是将本地指定目录下的图片转换为Base64数据并存储在Json格式中导出到本地txt文件的示例代码,其中使用了QT自带的QImage和QByteArray类进行处理:
#include <QCoreApplication>
#include <QDir>
#include <QFile>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 指定本地目录
QDir dir("path/to/dir");
// 遍历目录下所有文件
QStringList filters;
filters << "*.png" << "*.jpg";
dir.setNameFilters(filters);
QFileInfoList list = dir.entryInfoList();
// 创建JSON对象
QJsonObject json;
QJsonArray images;
// 处理每个图片文件
foreach (const QFileInfo &info, list) {
QImage image(info.absoluteFilePath());
if (!image.isNull()) {
QByteArray byteArray;
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // 转换为PNG格式
QString base64 = QString(byteArray.toBase64()); // 转换为Base64字符串
// 添加图片数据到JSON数组中
QJsonObject imgObject;
imgObject.insert("name", info.fileName());
imgObject.insert("data", base64);
images.append(imgObject);
}
}
json.insert("images", images);
// 导出到本地txt文件
QFile file("output.txt");
if (file.open(QIODevice::WriteOnly)) {
file.write(QJsonDocument(json).toJson());
file.close();
}
return a.exec();
}
以上示例代码仅供参考,具体实现方式可以根据实际需求进行修改。
内容由零声教学AI助手提供,问题来源于学员提问