📄 imageinfo.~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 + -