forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Загрузка изображений по HTTP (http://forum.boolean.name/showthread.php?t=2521)

Skythrone 17.07.2008 14:07

Ответ: Загрузка изображений по HTTP
 
Я тоже думал об этом. Но это же такие тормоза будут!

К тому же, если картинка размером 240x320 в формате JPEG/PNG занимает около 10 кб, то при хранении в ARGB она будет занимать 240x320x4 = 307200. Это почти в 30 раз больше.

Не, это совсем не вариант. :(

Skythrone 10.08.2008 02:12

Ответ: Загрузка изображений по HTTP
 
Есть вопрос. Он касается как данной библиотеки, так и библиотеки web.

Что произойдёт, если будет попытка загрузки изображения (или любых других данных по HTTP) в случае нестабильной или отсутствующей связи?

Особенно в такие неприятные моменты, когда сеть практически отсутствует, но при этом телефон ловит лишь спецсигналы о наличии GPRS и т.п. (например, в туннелях, в закрытых помещениях, в перегонах метро).
В этом случае коннект есть только формальный, реально данные по HTTP телефон получить не может, в результате чего мидлет просто зависает. Проверял лично.

По идее, тут нужно ставить либо таймаут ответа (например, 3-4 секунды), либо как-то корректно обрабатывать exception. Как это сделать при использовании библиотек - непонятно.

Уважаемые коллеги, что вы можете посоветовать?

Piligrim 10.08.2008 23:20

Ответ: Загрузка изображений по HTTP
 
по идее, в данном случае, библиотека должна отловить исключение и выдать null, т.е. что есть проблемы с загрузкой.

Skythrone 11.08.2008 00:53

Ответ: Загрузка изображений по HTTP
 
Понимаешь, если бы коннекта не было, то быть может она и отловила бы.

А так коннект вроде есть, но скорость скачки 2 байта в секунду.

ViNT 11.08.2008 14:45

Ответ: Загрузка изображений по HTTP
 
Вопрос в том, предусмотрена ли функция для отмены передачи/приема данных. Если да - добавить таймер (TimerTask), который будет следить за таймаутом, и в случае зависания останавливать обработку запроса.

Dj_Alex 04.11.2010 00:03

Ответ: Загрузка изображений по HTTP
 
Вложений: 1
что-то imageTostring толком не работает
Вложение 11688
во второй строчке содержимое получамой строки
при другом изображении изменяются лишь символы после @

скрин с эмулятора, на телефоне строчка другая: javax.microedition.lcdui.Image@130b...

ViNT 04.11.2010 02:18

Ответ: Загрузка изображений по HTTP
 
Цитата:

Сообщение от Dj_Alex (Сообщение 166980)
что-то imageTostring толком не работает
Вложение 11688
во второй строчке содержимое получамой строки
при другом изображении изменяются лишь символы после @

скрин с эмулятора, на телефоне строчка другая: javax.microedition.lcdui.Image@130b...

Да, как-то я это проглядел, метод возвращает не то, что нужно.
Посмотрю, как можно получить данные.

Deport 02.11.2012 15:05

Ответ: Загрузка изображений по HTTP
 
А как обрабатывать ошибки? например вот пример ошибки :
произошла ошибка из за того что изображение было удалено, но тогда в итоге мидлет намертво виснет...

Deport 02.11.2012 15:17

Ответ: Загрузка изображений по HTTP
 
мне удалось защитить библиотеку от попадания на несуществующие файлы но теперь другая ошибка,вот пример изображения из за которого вылетает ошибка: вот код который я использовал :
Код:


showcanvas;
x:=0;
a:=0;
b:=0;
c:=0;
repeat
open('http://m.megafonpro.ru/ml/upload/avatar/'+c+''+b+''+a+'/'+x+'._000_.jpg');
if get_error='' then set_method(GET);
if get_error='' then rc:=request;
if get_error='' then str:=get_data;
close;
ope:=get_data_bg;
if (rc=200) and (ope=1) then begin
    img:=Image_From_string(str);
    str:=del;
    img:=resize_image(img,getWidth,getHeight);
    DrawImage(img, 0, 0);
    img:=null;
    Repaint;
  end;
x:=x+1;
if (x>1) and (rc>200) or (rc<200) then begin
a:=a+1;
if a>9 then begin b:=b+1;a:=0;end;
if b>9 then begin c:=c+1;b:=0;end;
if c>9 then begin c:=0; end;
x:=1;
end;
until 1>2;



Часовой пояс GMT +4, время: 19:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot