我正在努力将ID3v2标记内的简单jpeg文件从TCP ++套接字转换为java(Android)。库“taglib”提供提取这个文件,我可以将jpeg保存为一个新文件。将jpeg从C++传输到android(java)
发送函数看起来像这样
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;
其中
[3->图像()。数据()返回一个指针的内部数据结构(它返回的char *)和 [3- > 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。 但是出了什么问题?
马丁
不要以字符串形式读取它。这不是一个字符串。以原始字节读入。 – 2011-03-30 18:46:39