【发布时间】:2010-09-20 14:33:07
【问题描述】:
我无法将 QPixmap 保存到 QByteArray,然后将其写入 char*。 例如,我正在尝试使用 ofstream 写入文件。
QByteArray bytes;
QBuffer buff(&bytes);
buff.open(QIODevice::ReadOnly);
pixmap.save(&buff, "PNG");
QString str(bytes);
char *data;
data = (char*)qstrdup(str.toAscii().constData());
ofstream myfile;
myfile.open ("test.jpg");
myfile << data;
myfile.close();
但我在该文件中得到的只是:
‰PNG
我需要一个 char* 的原因是因为我在写入磁盘时遇到了一些权限问题,然后使用 libcurl 发送。 我想将它加载到 char* 中,然后直接从内存中发送。
【问题讨论】:
-
您的 Qt 安装中是否安装了 JPEG 或 PNG 图像格式插件?此外,您应该在 PNG 或 JPEG 格式之间做出选择。
-
是的,我遇到了 jpeg 插件问题,但 png 似乎很好,因为当我在 windows 中尝试 pixmap.save(filename,format) 时它可以工作。
-
再提醒一下,我的libcurl有点生疏了,这个文件里面用什么选项发送?