Почему некоторые изображения отображаются черными при загрузке данных с URL? - PullRequest
0 голосов
/ 28 марта 2011

Я загружаю изображения из URL и сохраняю их в таблице базы данных SQLite. Изображения являются профилями изображений для пользователей. Я храню изображение профиля и информацию о пользователе в одной строке. Одна строка на пользователя.

Это в основном работает. Почти все изображения загружаются в мой список. Тем не менее, у меня есть 2-4 из 300 пользователей, которые отображают с черным изображением. Я подтвердил, что пользователи с черными изображениями имеют действительное изображение в URL, загрузив изображение через мой веб-браузер.

Кто-нибудь понял, почему эти несколько пользователей показывают черные изображения? Я не вижу никаких исключений.

Вот мой код:

ByteArrayBuffer baf = new ByteArrayBuffer(50);
URL url = new URL(imageURL); 
URLConnection ucon = url.openConnection();

InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);

int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}

...

// Then the byte[] is stored in a SQLite blob field. 
baf.toByteArray()

...

// Then I load the blob field like this into my view.
byte[] bytes = cursor.getBlob(cursor.getColumnIndex(DbHelper.PROFILE_IMAGE_COLUMN));
if (bytes != null) {
ImageView iv = (ImageView) v.findViewById(R.id.profile_icon);
iv.setImageBitmap(BitmapFactory.decodeByteArray(bytes, 0, bytes.length));
}

Ответы [ 2 ]

0 голосов
/ 21 ноября 2012

Я считаю, что моя проблема была связана с ошибкой Android. Это же изображение прекрасно отображается в Windows. Мне кажется, я обнаружил, что другие периодически сталкивались с такой же проблемой на Android.

0 голосов
/ 28 марта 2011

Наличие черного изображения обычно является признаком проблемы с альфа-смешанными / полупрозрачными изображениями.Я бы вручную загрузил одно из этих изображений и проверил его в каком-либо приложении для редактирования изображений, чтобы выяснить, какой именно формат этого изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...