Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Получить свойства всех картинок в TWebBrowser

Delphi , Интернет и Сети , Браузер

Получить свойства всех картинок в TWebBrowser

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses
   MSHTML_TLB;

 // First navigate to a page 
// Zuerst eine Seite laden 
procedure TForm1.Button1Click(Sender: TObject);
 begin
   Webbrowser1.Navigate('www.google.ch');
 end;

 // Then execute the following code: 
// Dann diese Routine ausfьhren: 
procedure TForm1.Button2Click(Sender: TObject);
 var
   i: Word;
   ImageWidth, ImageHeight: Integer;
   ImageHref, ImageFileSize, ImageTextAlternative: string;
   Document: IHtmlDocument2;
 begin
   // Loop through all images of a TWebbrowser 
  // Schleife ьber alle Bilder im Webbrowser 
  for i := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
   begin
     Document := WebBrowser1.Document as IHtmlDocument2;
     // Retrieves the calculated width of the image. 
    ImageWidth := WebBrowser1.OleObject.Document.Images.Item(i).Width;
     // Retrieves the height of the image. 
    ImageHeight := WebBrowser1.OleObject.Document.Images.Item(i).Height;
     // Retrieves the file size of the image. 
    ImageFileSize := (Document.Images.Item(i, 0) as IHTMLImgElement).FileSize;
     // Retrieves the entire URL that the browser uses to locate the image 
    ImageHref := (Document.Images.Item(i, 0) as IHTMLImgElement).Href;
     // Retrieves a text alternative to the graphic. 
    ImageTextAlternative := (Document.Images.Item(i, 0) as IHTMLImgElement).alt;
     // Show image information in a TListbox 
    ListBox1.Items.Add(Format('%s : %d x %d Pixels; %s Bytes; %s',
       [ImageHref, ImageWidth, ImageHeight, ImageFileSize, ImageTextAlternative]));
   end;
 end;

Here's the translation of the content into Russian:

Код на языке Delphi использует компонент TWebBrowser для навигации по веб-странице и последующего извлечения информации о всех изображениях на странице. Вот подробное описание того, что код делает:

Button1Click: Процедура навигирует контрол TWebBrowser к URL 'www.google.ch'.

Button2Click: Процедура проходит по всем изображениям на текущей веб-странице с помощью коллекции OleObject.Document.Images.

Для каждого изображения она извлекает следующую информацию:

  • ImageWidth: Рассчитанная ширина изображения.
  • ImageHeight: Высота изображения.
  • ImageFileSize: Размер файла изображения (Примечание: это свойство не поддерживается всеми браузерами и может возвращать ошибку).
  • ImageHref: Полный URL, который браузер использует для поиска изображения.
  • ImageTextAlternative: Текстовое альтернативное представление графики, также известное как атрибут 'alt'.

Извлеченная информация затем добавляется в контрол TListBox в формате:

' : x Pixels; Bytes; '.

Вот некоторые предложения по улучшению кода:

  1. Обработка ошибок: Код предполагает, что все изображения будут иметь валидные Width, Height и Filesize. Однако, если изображение не имеет этих атрибутов, код может упасть или выдать неправильные результаты. Нужно добавить обработку ошибок для таких случаев.
  2. Выполнительность: Просмотр всех изображений на веб-странице может быть ресурсоемким, особенно для больших страниц с множеством изображений. Рассмотрите возможность использования более эффективного подхода, такого как использование метода IHTMLDocument2.selectNodes для выбора только тех элементов изображения, которые вам интересны.
  3. Организация кода: Код довольно плотный и может выгодно разделить на отдельные процедуры или функции для каждого задачи (например, одна функция для извлечения информации о изображении, а другая - для отображения результатов).
  4. КомпатIBILITY браузеров: Как было упомянуто ранее, не все браузеры поддерживают свойство FileSize. Нужно протестировать этот код на различных браузерах и платформах, чтобы убедиться в его корректной работе.

В целом, это хороший старт для извлечения информации о изображениях с помощью компонента TWebBrowser Delphi. С некоторыми улучшениями вы можете сделать код более robust и эффективным.

В статье описано, как получить свойства всех картинок в TWebBrowser с помощью Delphi, используя MSHTML_TLB и navigating на страницу, после чего выполняется цикл по всем изображениям с получением ширины, высоты, размера файла, ссылки и текстового альтернат


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 15:42:55/0.0039021968841553/0