簡體   English   中英

將jpeg從c ++轉移到android(java)

[英]transfer jpeg from c++ to android (java)

我正在努力將ID3v2標簽中的簡單jpeg文件從c ++通過TCP套接字傳輸到java(Android)。 庫“taglib”提供了解壓縮此文件的功能,我可以將jpeg保存為新文件。

send函數看起來像這樣

char *parameter_full = new char[f3->picture().size()+2];
sprintf(parameter_full,"%s\n\0",f3->picture().data());

// send
result = send(c,parameter_full,strlen(parameter_full),0);

delete[] parameter_full;

哪里

f3-> picture()。data()返回一個指向內部數據結構的指針(它返回char *)和f3-> picture()。size()返回數組的大小。

然后Android收到它

String imageString = inFromServer.readLine();
byte[] imageBytes = imageString.getBytes();
Bitmap cover = BitmapFactory.decodeByteArray(imageBytes,0,imageBytes.length);

但不知怎的,decodeByteArray總是返回null。 我的想法是Java沒有正確接收圖像,因為imageString只包含4個字符...而提取的jpeg文件大小為12.7 KB。 但出了什么問題?

馬丁

不應在字節數據上使用字符串函數,因為0值被視為字符串終止符。 如果需要在Java端復制char*以及InputStreambyte[]讀取函數,請嘗試在C ++端查看memcpy。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM