Qt QImage和Base64之间的转换

本文介绍了如何在Qt环境下将QImage对象转换为Base64格式的字符串,提供了C++代码示例,适用于VS2015 + Qt5.9的开发环境。博主分享了实现过程,并邀请读者分享更优方法。
摘要由CSDN通过智能技术生成

今天同事让帮忙将bmp图像转换到Base64格式的字符串,尝试了一下,

直接上代码吧!!(环境:vs2015 + Qt5.9)

 

头文件:

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_Bmp2Base64vs.h"

class QImage;

class Bmp2Base64vs : public QMainWindow
{
    Q_OBJECT

public:
    Bmp2Base64vs(QWidget *parent = Q_NULLPTR);

    bool load_img_from_file(const QString &file_name);

    //image 转 base64 字符串
    QString bmp_2_base64_string(const QImage& img);

    QString bmp_2_base64_string_from_file(const QString& file_name);

    //base64 转 QImage
    QImage base64_string_2_img(const QString& str);

private slots:
    void on_click_btn_open_img();
    void on_click_btn_convert_2_Base64_string();
    
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt中,`QImage`类有许多构造函数和成员函数,它们有不同的参数用于初始化、操作和获取图像信息。下面是一些常用的`QImage`函数及其参数: 1. **构造函数**: - `QImage(const QSize& size, QImage::Format format = QImage::Format_RGB32)`: 初始化一个指定大小和格式的新图像。`size`是对角线长度的整数元组,`format`可选,默认为RGB32格式。 - `QImage(const uchar* data, int width, int height, int bytesPerLine, QImage::Format format)`: 从内存缓冲区创建图像,传入数据数组、宽度、高度、每行字节数和格式。 - `QImage(const QPixmap &pixmap)`: 从QPixmap对象复制图像数据。 2. **设置图像数据**: - `QImage::setData(const uchar* data, int bytesPerLine, QImage::Format format = QImage::Format_ARGB32_Premultiplied)`: 将新的图像数据设为给定的数据,包括新的数据格式。 - `QImage::load(const QString& fileName)`: 加载本地文件作为QImage。 3. **获取信息**: - `width() const`: 返回图像的宽度。 - `height() const`: 返回图像的高度。 - `format() const`: 获取图像的格式,如QImage::Format_RGB32或QImage::Format_Grayscale8。 4. **显示和绘制**: - `QPainter painter(this)`: 创建一个绘图上下文,在当前图像上绘画。 - `void paint(QPainter *painter, const QRect &rect = QRect())`: 画到指定矩形区域,如果没有提供,则填充整个图像。 - `QPixmap toPixmap() const`: 转换为QPixmap对象,便于显示。 5. **序列化与编码**: - `QByteArray toData() const`: 将图像数据编码成二进制字符串。 - `QString toBase64() const`: 编码Base64字符串,常用于在线显示。 常用函数还有缩放、旋等操作,注意每个操作都可能涉及到新的参数。使用前查阅文档了解详细的参数意义是很重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值