delphi 从url 加载图像  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 从url 加载图像



unit uCarregaImagemWeb;


interface


uses

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, JPeg,  pngimage ,

  IdBaseComponent,  IdTCPConnection, IdTCPClient, IdHTTP, IdSSLOpenSSL,

  IdServerIOHandler, IdSSL, IdComponent;


type

  TfrmImgtoView = class(TForm)

    edtUrlImagem: TEdit;

    GroupBox1: TGroupBox;

    Image1: TImage;

    Button2: TButton;

    procedure Button2Click(Sender: TObject);

    procedure FormShow(Sender: TObject);


  private

    { Private declarations }

  public

    { Public declarations }

  end;





var

  frmImgtoView: TfrmImgtoView;




implementation


{$R *.dfm}


procedure urltoimg(URL: string; APicture: TPicture);

var

  tt            : TThread;

begin


    tt := TThread.CreateAnonymousThread

      (

      procedure

      var

        Jpeg          : TJpegImage;

        Jpng          : TPNGImage;

        Strm          : TMemoryStream;

        idhttp        : TIdHTTP;

        IDSSLHandler  : TIdSSLIOHandlerSocketOpenSSL;

      begin

        try

          Screen.Cursor     := crHourGlass;

          Jpeg              := TJPEGImage.Create;

          jPng              := TPNGImage.Create;

          Strm              := TMemoryStream.Create;

          idhttp            := TIdHTTP.Create(nil);

          IDSSLHandler      := TIdSSLIOHandlerSocketOpenSSL.Create;

          idhttp.IOHandler  := IDSSLHandler;

          IDSSLHandler.SSLOptions.Method := sslvTLSv1_2;

          try

            idhttp.Get(URL, Strm);

            if (Strm.Size > 0) then

            begin

              try

                Strm.Position := 0;

                Jpeg.LoadFromStream(Strm);

                APicture.Assign(Jpeg);

              except

                Strm.Position := 0;

                jPng.LoadFromStream(Strm);

                APicture.Assign(jPng);

              end;

            end;

          finally

            Strm.Free;

            Jpeg.Free;

            jPng.Free;

            idhttp.Free;

            IDSSLHandler.Free;

            Screen.Cursor := crDefault;

          end;

        except on e:Exception do

          ShowMessage('ERROR: '+e.Message);

        end;



      end

      );

    tt.start();






end;



procedure TfrmImgtoView.Button2Click(Sender: TObject);

begin

 urltoimg(''+edtUrlImagem.Text+'', Image1.Picture);

end;


procedure TfrmImgtoView.FormShow(Sender: TObject);

begin

    edtUrlImagem.Text := 'https://avatars.githubusercontent.com/u/26030963?v=4';

    Button2.Click; //test example

end;


end.



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.034778118133545 seconds