Изображение слишком маленькое, когда я пытаюсь загрузить его с помощью Facebook Graph API и Android

#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-карту, прежде чем я смогу извлечь его оттуда. Это мое решение.