Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2011, 14:52   #1
fezilk25
Форумчанин
 
Регистрация: 01.08.2010
Сообщений: 124
По умолчанию Загрузить картинку из интернета в ListImage

Необходимо загрузить картинки в ListImage, для последующей вставки в ListView. Как это сделать, не пойму.. на форуме не нашел
fezilk25 вне форума Ответить с цитированием
Старый 29.07.2011, 15:19   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

загрузили в TImage(а точнее в любой им поддерживаемый класс) и добавили в список, в чем проблема то?
http://docwiki.embarcadero.com/VCL/e...erited_Members
методы Add, AddImage, и прочие Add*
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.07.2011, 16:02   #3
fezilk25
Форумчанин
 
Регистрация: 01.08.2010
Сообщений: 124
По умолчанию

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
strStream: String;
memStream: TMemoryStream;
jpegimg: TBitmap;
begin
try
strStream := Form1.idhttp1.Get('http://avt.foto.mail.ru/mail/johntokarev/_avatar');
except

Exit;
end;
memStream := TMemoryStream.Create;
jpegimg := TBitmap.Create;
try
memStream.Write(strStream[1], Length(strStream));
memStream.Position := 0;
jpegimg.LoadFromStream(memStream);
ImageList1.Add(jpegimg, nil);
finally
memStream.Free;
jpegimg.Free;
end;
end;
Ошибка Project Project1.exe raised exception class EInvalidGraphic width message 'Bitmap image is not valid'

Если TImage - нет фунции LoadFromStream
fezilk25 вне форума Ответить с цитированием
Старый 29.07.2011, 16:05   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а почему вы JPEG-изображение пытаетесь загрузить в TBitmap?
грузите в TJPEGIMage
и помоему можно будет TImage.JPEGIMage.LoadFromStream(ток а TIMage надо создать и в uses jpeg добавить)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.07.2011, 16:21   #5
fezilk25
Форумчанин
 
Регистрация: 01.08.2010
Сообщений: 124
По умолчанию

[DCC Error] Unit1.pas(123): E2010 Incompatible types: 'TBitmap' and 'TJPEGImage'

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
strStream: String;
memStream: TMemoryStream;
jpegimg: TJPEGImage;
begin
try
strStream := Form1.idhttp1.Get('http://avt.foto.mail.ru/mail/johntokarev/_avatar');
except

Exit;
end;
memStream := TMemoryStream.Create;
jpegimg := TJPEGImage.Create;
try
memStream.Write(strStream[1], Length(strStream));
memStream.Position := 0;
jpegimg.LoadFromStream(memStream);
ImageList1.Add(jpegimg, nil);
finally
memStream.Free;
jpegimg.Free;
end;
end;
В ImageList тогда не загружается
fezilk25 вне форума Ответить с цитированием
Старый 29.07.2011, 17:34   #6
fezilk25
Форумчанин
 
Регистрация: 01.08.2010
Сообщений: 124
По умолчанию

Разобрался. Вот рабочий код:
Код:
function JPEG2BMP(jpg:TJPEGIMage):TBitmap;
begin
 Result:=TBitmap.Create;
 Result.Assign(jpg);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
jpegimg: TJPEGImage;
bmp:TBitmap;
M:TMemoryStream;
begin
M:=TMemoryStream.Create;
 idHTTP1.Get('URL ИЗОБРАЖЕНИЯ',M);
 M.Position:=0;
 jpegimg := TJPEGImage.Create;
 jpegimg.loadfromstream(m);
 M.free;
bmp:=JPEG2BMP(jpegimg);
ImageList1.Add(bmp, nil);
jpegimg.Free;
bmp.Free;
end;
fezilk25 вне форума Ответить с цитированием
Старый 29.07.2011, 18:14   #7
fezilk25
Форумчанин
 
Регистрация: 01.08.2010
Сообщений: 124
По умолчанию

грузит только jpg, хотелось бы ещё и gif, это реально?
fezilk25 вне форума Ответить с цитированием
Старый 30.07.2011, 20:10   #8
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Код:
uses pngimage, jpeg, Gifimg;

var
img: TMemoryStream;
Buf: string;
begin
FH.get(сайт', img);
Buf := Trim(FH.Response.ContentType);
If (Pos('image/png', Buf) > 0) then
try

                png := TPNGObject.Create;
                img.Position := 0;
                png.LoadFromStream(img);
                Synchronize(capcha);
          else if (Pos('image/gif', Buf) > 0) then
            try
              Gif := TGIFImage.Create;
              img.Position := 0;
              Gif.LoadFromStream(img);
              Synchronize(capchagif);
            finally
              Gif.Free;
              img := nil;
            end
          else If (Pos('image/JPEG', Buf) > 0) then
            try
              jpeg := TJPEGImage.Create;
              img.Position := 0;
              jpeg.LoadFromStream(img);
              Synchronize(ShowModalForm);
              finally
              jpeg.Free;
              img := nil;
end;
Надеюсь смысл ясен, если чё пиши в личку
+

Последний раз редактировалось bulldog5293; 30.07.2011 в 20:12.
bulldog5293 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отобразить в Image картинку с интернета Alest Работа с сетью в Delphi 22 21.05.2012 00:05
Как загрузить файл из интернета в memo? darvin232 Работа с сетью в Delphi 4 19.06.2011 08:56
как загрузить картинку из интернета пауэрлифтинг Работа с сетью в Delphi 6 02.08.2010 16:49
Как загрузить файл из интернета tarakan1983 Работа с сетью в Delphi 14 24.03.2009 06:47
из интернета картинку в имедж загрузить? Лёка Работа с сетью в Delphi 4 13.01.2008 14:35