⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageinfo.~pas

📁 delphi实现 webservice的例子.有服务端和客户段 利用xml交互.
💻 ~PAS
字号:
unit imageinfo;

interface
  uses
     jpeg,ComFun,Classes,Graphics;
 type
   TImageInfo=class(TObject)
     picsize :Integer;
     private
     sFileName :string;
     sLabelCode :string;
     sPid:string;
     sImage:WideString;
     sFormate:String;
     sBase64str :Widestring;
     function jpeg2str():Widestring;
     function bmp2str():Widestring;
    // function str2jpeg(str:WideString):TStream;
      function str2graphicStream(str:WideString):TStream;
      function GetBase64Str():WideString;
      function GetFormate():string;
      function GetStream():TStream;
    public
     constructor Create(Fname:string;ProductID:string;Code:string);
     property FileName :string read sFileName write sFileName;
     property FileFormate :string read GetFormate;
     property ImageStr:WideString read GetBase64Str write sBase64str;   //上传 用
     property Pid :string read sPid write sPid;
     property LabelCode :string read sLabelCode write sLabelCode;
     procedure SetBase64FromStream(stream:TStream);
     property ImageStream :TStream read GetStream ; //下载用


 end;
implementation
   constructor TImageInfo.Create(Fname:string;ProductID:string;Code:string);
   begin
      sfilename :=Fname;
      sPid:=ProductID;
      sLabelCode :=Code;

     end;

  function TImageInfo.GetBase64Str():WideString;
  begin
    if(sBase64str<>'')then
    begin
       Result:=sBase64str;
       exit;
      end;
     if(FileFormate='jpeg') then
      Result :=jpeg2str
     else if(sFormate='bmp') then
      Result :=bmp2str
    else
     Result :='';
     sBase64str :=Result;
    end;

  function TImageInfo.jpeg2str:Widestring;
   var
    stream :TMemoryStream;
    jpg:TJPEGImage;
  begin
     stream :=TMemoryStream.Create;
     jpg :=jpg.Create;
     jpg.LoadFromFile(sFileName);
     jpg.SaveToStream(stream);
     stream.Position :=0;
     Result :=StreamToBase64(stream);
     picsize :=stream.Size;
     jpg.Free;
    end;
  function TImageInfo.bmp2str:WideString;
  var
     stream:TMemoryStream;
     bmp :TBitmap;
  begin
    stream:=TMemoryStream.Create;
     bmp :=TBitmap.Create;
     bmp.LoadFromFile(sFileName);
     bmp.SaveToStream(stream);
     picsize :=stream.Size;
     Result :=StreamToBase64(stream);
     bmp.FreeImage;
  end;
  procedure TImageInfo.SetBase64FromStream(stream:TStream);
  begin
     stream.Position :=0;
     sBase64str :=StreamToBase64(stream);
   end;

  function TImageInfo.GetFormate():string;
  begin
      sFormate :=Copy(sLabelCode,PosPlus('#',sLabelCode,2)+1,4);
      Result :=sFormate;
    end;

  function TImageInfo.str2graphicStream(str:WideString):TStream;
  var
    stream :TStream;
  begin
    stream :=TMemoryStream.Create;
    stream := Base64ToStream(str);
    Result :=stream;
   end;

  function TImageInfo.GetStream():TStream;
  begin
   Result := str2graphicStream(sBase64str);
  end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -