#android #facebook #facebook-graph-api
#Android #Facebook #facebook-graph-api
Вопрос:
Проще говоря, мне нужно захватить изображение с помощью камеры и загрузить его на facebook через мое приложение для Android. И я успешно это сделал. Проблема в том, что когда фотография публикуется в facebook, она слишком мала и имеет низкое разрешение, в то время как изображение, которое я сделал, имеет высокое разрешение.
Я понимаю это: чтобы загрузить на facebook, мне нужно преобразовать захваченное изображение в формате bitmap в массив байтов. Итак, у меня есть метод для этого:
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. Вы пробовали использовать compressformat.JPEG ? при 100 качестве это может решить проблему
Ответ №1:
Хорошо, даже эта ветка старая, я нашел ответ. Это не проблема CompressFormant.JPEG или CompressFormat.JPG . Проще говоря, intent в Android не предназначен для переноса больших данных, таких как изображение, из activity в activity. Мне нужно сначала сохранить изображение из intent на SD-карту, прежде чем я смогу извлечь его оттуда. Это мое решение.