如何将cv::mat标头和数据部分转换为单个字节数组
How to convert a cv::mat header and data part into a single qbytearray?
我想使用Qt 4.8.1的Qftp
模块发送openv图像到FTP服务器。我写了下面的代码:
ftp = new QFtp(this);
//ftp initilization
.
.
.
.
//
cv::Mat InputImage(100,100,CV_8UC1,cv::Scalar::all(75));
QImage FTP_Result = QImage((const uchar *) InputImage.data, InputImage.cols, InputImage.rows, InputImage.step, QImage::Format_Indexed8);
QByteArray byteMe((char *) FTP_Result.bits());
qDebug()<<"Image size is: "<<FTP_Result.height()<<"*"<<FTP_Result.width(); //it returns 100*100
ftp->put(byteMe,"Sample.jpg");
当我进入ftp服务器硬盘时,我发现Sample.jpg,它被"K"字符填充,这是ascii等效的"75"。似乎头丢失了,所以操作系统认为它只是一个简单的文本文件。我认为这是因为我只复制了InputImage。data保存到QByteArray变量中,因此没有关于图像的信息可用。我应该做些什么来复制"InputImage"标题信息到"byteMe"变量,这样我就可以存储一个健康的JPEG文件?
Try
QByteArray byteMe((char *) FTP_Result.bits(), FTP_Results.byteCount());
当你用一个简单的char *
构造时,它会寻找一个以空结尾的字符串
相关文章:
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 将字符向量转换为单个字符串
- 将单个字符转换为 std::string 前缀 \x01
- 如何在 c++ 中将 2D 数组转换为单个字符串
- 将C字符串转换为单个整数
- 我通过迭代加法将二进制数转换为十进制并检查单个字符(请参阅代码)的方法有什么问题?
- 允许对单个值进行隐式转换
- 从字符串中提取单个字符并将其转换为 int
- put_time具有转换说明符,该转换指定符,该指定符在一个月的单个数字上输出没有前面字符的单位天数
- 输入到字符串流并在单个语句中转换为字符串.可以没有帮助程序类
- 如何将单个字符转换为为基本密码哈希器设置整数,C++
- 如何将单个位转换为字符
- 使用类继承将单个喜欢的列表转换为双向链表
- 如何将char表中的单个炭转换为int
- 在什么基础上,由单个元素组成的参数包的折叠表达式被转换为未加括号的表达式
- 如何将双数组的单个元素转换为 QString
- 使用位操作将8字节数字中的每个字节中的一位转换为单个字节
- 快速将双重指针阵列转换为单个指针,可能是连续的
- 将IP地址转换为单个数字