简单地说我需要使用相机捕获图像并通过我的Android应用程序将其上传到Facebook。我成功地做到了。问题是当照片在Facebook上发布时,它只是太小而且分辨率低,而我拍摄的图像是高分辨率。
据我所知:为了上传到facebook,我需要将位图格式的捕获图像转换为字节数组。所以我有方法:
public static byte[] convertBitmapToByteArray(Bitmap bm){
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bm.compress(CompressFormat.PNG, 100, bos);
byte[] bitmapdata = bos.toByteArray();
return bitmapdata;
}
然后将图像上传到facebook,我的代码如下,其中byteData是我使用上述方法从位图图像转换的字节数组。
parameters.putString("message", "Test");
parameters.putByteArray("source", byteData);
String facebookResponse = facebookInstance.request(albumId+"/photos",parameters,"POST");
return facebookResponse;
我很确定问题是我的convertBitmapToByteArray方法,因为该方法是压缩位图图像并将其转换为字节数组,这使我的图像成为低分辨率图像。但是,我似乎无法找到上传图像的方法,而不首先将其转换为字节数组。对我来说有什么解决方案吗?
答案 0 :(得分:0)
好吧,即使这个帖子已经老了,我找到了答案。这不是CompressFormant.JPEG或CompressFormat.JPG的问题。简单地说,android中的意图并不是为了通过活动来承载像活动这样的大数据。我需要先将图像从意图保存到SD卡,然后再将其从那里拉出来。这是我的解决方案。