获取textEdit中的图片信息并转换成base64编码


    void extractContent() {
        QString textContent;
        QList<QByteArray> imageBase64List;

        QTextDocument *document = textEdit->document();

        QSet<QUrl> processedUrls; // 避免重复处理同一图片

        // 遍历文档中的所有块
        for (QTextBlock block = document->begin(); block != document->end(); block = block.next()) {
            // 遍历块中的所有片段
            QTextBlock::iterator it;
            for (it = block.begin(); !(it.atEnd()); ++it) {
                QTextFragment fragment = it.fragment();
                if (!fragment.text().isEmpty()) {
                    // 提取文本片段
                    textContent += fragment.text();
                }

                // 检查片段中的图像
                if (fragment.charFormat().isImageFormat()) {
                    QUrl imageUrl = fragment.charFormat().toImageFormat().name();
                    processedUrls.insert(imageUrl );
                    if (!image.isNull()) {
                    // 将 QImage 转换为 QByteArray
                    QByteArray byteArray;
                    QBuffer buffer(&byteArray);
                    buffer.open(QIODevice::WriteOnly);
                    image.save(&buffer, "PNG"); // 可以选择其他格式,如 "JPEG"

                    // 编码为 Base64
                    QByteArray base64Data = byteArray.toBase64();
                    imageBase64List.append(base64Data);
                }                
            }

        }

        // 显示提取结果
        QMessageBox::information(this, "Extraction Result", "Text Content:\n" + textContent);
        for (const QByteArray &base64Data : imageBase64List) {
            qDebug() << "Image Base64 Data:" << base64Data;
        }
    }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值