QByteArray char*, senden mit libcurl
Ich habe Probleme mit speichern eines QPixmap zu QByteArray, dann schreiben Sie zu " char*".
Zum Beispiel bin ich versucht zu schreiben in einer Datei mit 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();
Aber ich erhalte in der Datei ist:
‰PNG
Den Grund brauche ich ein char* ist, weil ich habe einige Rechteprobleme beim schreiben auf die Festplatte, dann das senden mit libcurl.
Ich will lädt es in ein char* ist , dann schicken Sie es direkt aus dem Speicher.
- Haben Sie die JPEG-oder PNG-format-plugins installiert, die mit Ihrer Qt-installation? Auch sollten Sie sich entscheiden, zwischen dem PNG-oder JPEG-Formate.
- ja, ich hatte jpeg-plugin Probleme, aber png in Ordnung scheint, da es funktioniert wenn ich versuche pixmap.save(filename,format) in windows.
- Erinnern Sie mich wieder, meine libcurl ist ein wenig eingerostet, was ist die option zum senden in dieser Datei?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Treffen Sie auf eine null-byte. Sie müssen so etwas wie
write()
, weil die<<
- operator erlaubt es Ihnen nicht zu sagen, wie lange der string ist, und hält das schreiben in der ersten null-byte:Gelöst ist das problem mit diesem:
Soll versucht haben, mindestens.
bytes.constData()
ist genaubytes.size()
lange.Nicht direkt, aber gibt es irgendeinen Grund für die Verwendung libcurl statt des integrierten QNetworkAccessManager?
können Sie verwenden
strdup()
. Diese Methode ist dies zu tunweitere Infos hier: strdup() - was bedeutet es in C?
so, dass Sie eine
char*
, in der Erwägung, dassConstData()
zurückconst char*