zoukankan      html  css  js  c++  java
  • Qt unsigned char* (uchar*) 转为QImage

    场景:有一副图像,事先已经因为各种需要被读取到了内存中,且不可再根据路径读取,只能读取内存中的数据转为QImage

     1     //即使在已经知道图像宽高和格式的情况下,第一种方法依然无法成功转换
     2  
     3     //方法1  不行
     4     QImage image((unsigned char*)imgData,1920,1080,QImage::Format_RGB32);
     5  
     6     //方法2  QByteArray也可以
     7     image.loadFromData((unsigned char*)imgData,readLen,"JPG");
     8  
     9     //方法3  QByteArray也可以
    10     image = image.fromData((unsigned char*)imgData,readLen,"JPG");

    我在使用fromData的时候,忽略了fromData的返回值,一直以为不能转换,后来才发现需要用image去接收转换结果

    函数原型:

    1 bool loadFromData(const uchar *buf, int len, const char *format = nullptr);
    2 bool loadFromData(const QByteArray &data, const char *aformat = nullptr);
    3  
    4 static QImage fromData(const uchar *data, int size, const char *format = nullptr);
    5 static QImage fromData(const QByteArray &data, const char *format = nullptr);

    参数解释:

    参数1:无符号字符型数据或者QByteArray数据

    参数2:数据长度

    参数3:需要转为什么格式的图片,选取错误可能会导致转换失败

    照片支持格式列表: 

  • 相关阅读:
    Steps to Writing Well----Reading Notes
    How to Improve Reading Skills
    Requirement-Driven Linux Shell Programming
    Linux tar command usage
    MVC和MVVM模型
    js中特殊的宏任务
    js 超浓缩 双向绑定
    JavaScript 中的遍历详解
    多段动画整合为一个动画的思路
    Js事件循环(Event Loop)机制
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/15156207.html
Copyright © 2011-2022 走看看