AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebBrowser Image (PNG) auslesen + anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser Image (PNG) auslesen + anzeigen

Ein Thema von Mephisto090 · begonnen am 23. Apr 2009 · letzter Beitrag vom 29. Apr 2009
Antwort Antwort
Seite 1 von 3  1 23      
Mephisto090

Registriert seit: 11. Apr 2009
35 Beiträge
 
Delphi 7 Enterprise
 
#1

TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 23. Apr 2009, 11:47
Hallo,

Ich will von einer seite ein bild vom Typ PNG auslesen und in einem TImage ausgeben
Der Dateiname von der PNG datei ist immer unterschiedlich.

Danke im Vorraus
Mephi
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 23. Apr 2009, 12:20
Dazu gehst du über den DOM des IE (MSHTML.pas einbinden und TWEbBrowser.Document nach IHTML2Document casten) und dann die Imgages-Auflistung durchsuchen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Mephisto090

Registriert seit: 11. Apr 2009
35 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 23. Apr 2009, 12:38
habe mich noch nicht so mit Image beschäftigt kannst du mir vllt eine ausführliche Methode geben
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 23. Apr 2009, 13:22
Probiers mal so:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, OleCtrls, SHDocVw, mshtml, ActiveX, winInet,
  pngimage, gifimage, jpeg;

type
  TForm3 = class(TForm)
    WebBrowser1: TWebBrowser;
    ListBox1: TListBox;
    Image1: TImage;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

function GetURLCacheFile(AURL : String; const AData : TMemoryStream) : Integer;
var
  ice : PInternetCacheEntryInfo;
  iceSize : Cardinal;
  CacheEntry : Cardinal;
  DataSize : Cardinal;
  Buffer : Pointer;
begin
  iceSize:=MAX_CACHE_ENTRY_INFO_SIZE;

  Result:=-1;

  GetMem(ice, iceSize);
  try
    CacheEntry:=RetrieveUrlCacheEntryStream(PChar(AUrl), ice^, iceSize, false, 0);
    try
      if CacheEntry>0 then
      begin
        DataSize:=ice.dwSizeLow;
        Adata.Clear;
        AData.SetSize(DataSize);
        Buffer := AData.Memory;
        if ReadUrlCacheEntryStream(CacheEntry, 0, Pointer(Buffer^), DataSize, 0) then
          Result:=DataSize
        else
          RaiseLastOSError;

      end;
    finally
      UnlockUrlCacheEntryStream(CacheEntry, 0);
    end;
  finally
    FreeMem(ice, iceSize);
  end;
end;

procedure TForm3.Button1Click(Sender: TObject);
var
  doc : IHTMLDocument2;
  img : OleVariant;
  images : IEnumVARIANT;
  Fetched : Cardinal;
begin
  ListBox1.Clear;

  if Supports(WebBrowser1.Document, IHTMLDocument2, doc) and
     Supports(doc.images._newEnum, IEnumVARIANT, images) then
  begin
    images.Reset;

    while images.Next(1, img, Fetched) = S_OK do
    begin
      ListBox1.Items.Add(img.src);
    end;
    
  end;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
  //WebBrowser1.Navigate('http://www.delphipraxis.net/topic156542_twebbrowser+image+png+auslesen+anzeigen.html');
  WebBrowser1.Navigate('http://commons.wikimedia.org/w/index.php?title=Special%3ASearch&search=png&go=Go');
end;

procedure TForm3.ListBox1Click(Sender: TObject);
var
  ms : TMemoryStream;
  FName : String;
begin
  if ListBox1.ItemIndex > -1 then
  begin
    ms := TMemoryStream.Create;
    GetURLCacheFile(ListBox1.Items[ListBox1.ItemIndex], ms);

    FName := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) +
             'test' + ExtractFileExt(ListBox1.Items[ListBox1.ItemIndex]);

    ms.SaveToFile(FName);

    ms.Free;

    Image1.Picture.LoadFromFile(FName);

    DeleteFile(FName);
  end;
end;

end.
Angehängte Dateien
Dateityp: zip demo_189.zip (357,6 KB, 77x aufgerufen)
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Mephisto090

Registriert seit: 11. Apr 2009
35 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 23. Apr 2009, 14:27
und das wird jetzt in einem TImage ausgeben weil ich da lese das es in eine Listbox geht
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#6

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 24. Apr 2009, 05:14
Alle URL's der Bilder der Seite landen in der Listbox. Sobald man eine URL anklickt, zeigts das Bild im TImage an.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 24. Apr 2009, 05:31
Zitat von Mephisto090:
und das wird jetzt in einem TImage ausgeben weil ich da lese das es in eine Listbox geht
das ist doch leicht zu ändern, dass es direkt in dem TImage angezeigt wird.
Thomas
  Mit Zitat antworten Zitat
Mephisto090

Registriert seit: 11. Apr 2009
35 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 24. Apr 2009, 21:07
wenns so wäre dann hätte ich es ja schon gemacht
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#9

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 24. Apr 2009, 21:18
Zitat von Mephisto090:
wenns so wäre dann hätte ich es ja schon gemacht
Boah ey...

Delphi - Grundlagen

//Edit: chaosben hat dir eine komplette Anwendung geschrieben. Ein kleines "Danke" wäre sicher nicht zuviel gewesen!
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

Re: TWebBrowser Image (PNG) auslesen + anzeigen

  Alt 24. Apr 2009, 22:29
Zitat:
//Edit: chaosben hat dir eine komplette Anwendung geschrieben. Ein kleines "Danke" wäre sicher nicht zuviel gewesen!
OT..
So sehe ich das auch

gruss Emil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz