当我尝试使用Facebook Graph API和Android上传图像时,图像太小

时间:2011-05-24 08:31:55

标签: android facebook facebook-graph-api

简单地说我需要使用相机捕获图像并通过我的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方法,因为该方法是压缩位图图像并将其转换为字节数组,这使我的图像成为低分辨率图像。但是,我似乎无法找到上传图像的方法,而不首先将其转换为字节数组。对我来说有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

好吧,即使这个帖子已经老了,我找到了答案。这不是CompressFormant.JPEG或CompressFormat.JPG的问题。简单地说,android中的意图并不是为了通过活动来承载像活动这样的大数据。我需要先将图像从意图保存到SD卡,然后再将其从那里拉出来。这是我的解决方案。