Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.31;
Скачать: CL | DM;

Вниз

Поместить картинку из TWebBrowser в TImage   Найти похожие ветки 

 
Danco ©   (2009-12-08 16:24) [0]

Отгуглил весь интернет, ничего хорошего не нашел.

Загружаю страницу в TWebBrowser, на ней есть фотография, ее нужно пометить в TImage без повторной загрузки изображения из интернета.

Кто-нибудь знает как это реализовать?


 
clickmaker ©   (2009-12-08 16:35) [1]

разве что поискать в кэше по Src


 
clickmaker ©   (2009-12-08 16:36) [2]

по имени файла в src, вернее


 
sniknik ©   (2009-12-08 16:48) [3]

а если есть кеш, то разве повторное обращение не возьмет картинку из кеша? или это динамический контент?


 
Сергей М. ©   (2009-12-08 16:49) [4]

А нашиша тогда TWebBrowser ?


 
clickmaker ©   (2009-12-08 16:54) [5]

> повторное обращение не возьмет картинку из кеша?

смотря чем обращаться.
InternetOpenUrl, может, и возьмет.
А какой-нибудь инди, который через сокеты работает, о кэшах не знает ничего


 
sniknik ©   (2009-12-08 17:02) [6]

> А какой-нибудь инди
а, ну да. ну тогда можно попробовать "поковырять" сам TWebBrowser, на предмет сохраняющего интерфейса и вместо странички дать ему ссылку на картинку из src.

а еще кстати, к автору, а у тебя фотографии в bmp? поэтому ты так напрягаешься лишь бы не качать повторно. :) или у тебя "супер"TImage?


 
Danco ©   (2009-12-08 17:28) [7]


> а еще кстати, к автору, а у тебя фотографии в bmp? поэтому
> ты так напрягаешься лишь бы не качать повторно. :) или у
> тебя "супер"TImage?

Нет, просто не хочу лишний раз загружать трафик.


> разве что поискать в кэше по Src


А просто вынуть из TWebBrowser можно?


 
sniknik ©   (2009-12-08 17:35) [8]

> Нет, просто не хочу лишний раз загружать трафик.
это понятно, а отображать как собрался?


 
Danco ©   (2009-12-08 18:24) [9]


> это понятно, а отображать как собрался?

Помоему я этот вопрос задал :))


 
clickmaker ©   (2009-12-08 18:34) [10]

> Помоему я этот вопрос задал :))

дык она и так уже в веббраузере отображается


 
sniknik ©   (2009-12-08 19:14) [11]

> Помоему я этот вопрос задал :))
тогда отвечаю - до того как озадачиваться что то вытаскивать, сначала реализуй поддержку ico, gif, png, и других форматов в которых может быть рисунок в браузере, т.к. стандартно есть только bmp и jpeg.
к тому времени может охота перетаскивать и пропадет...

> дык она и так уже в веббраузере отображается
дык его он наверняка хочет спрятать, как только свое доделает. ;)


 
Danco ©   (2009-12-08 19:24) [12]

Пришла в голову идея:
Если делать скрин TWebBrowser и помещать TImage, после вырезать нужный элемент.

procedure TForm1.Button1Click(Sender: TObject);
var
 ViewObject: IViewObject;
 sourceDrawRect: TRect;
begin
Image1.Picture := nil;
if WebBrowser.Document <> nil then
 try
  WebBrowser.Document.QueryInterface(IViewObject, ViewObject);
  if ViewObject <> nil then
   try
    sourceDrawRect := Rect(0, 0, WebBrowser.Width, WebBrowser.Height);
    ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Self.Handle,
    image1.Canvas.Handle, @sourceDrawRect, nil, nil, 0);
   finally
    ViewObject._Release;
   end;
 except
 end;
end;


Этот код работает, но он копирует не всю страницу, а только видимую часть, как можно скопировать всю страницу?



Страницы: 1 вся ветка

Текущий архив: 2010.01.31;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
15-1259530217
Юрий
2009-11-30 00:30
2010.01.31
С днем рождения ! 30 ноября 2009 понедельник


6-1212042758
Stas
2008-05-29 10:32
2010.01.31
Все входящие пакеты по TCP/IP


1-1234880388
Константин
2009-02-17 17:19
2010.01.31
Перевод ASCI в HEX и наоборот?


15-1259333816
Демо
2009-11-27 17:56
2010.01.31
Ветку реестра может кто кинуть?


4-1227785172
VitAngel
2008-11-27 14:26
2010.01.31
Вывод процесса установки.