本文整理自网络,侵删。
uses pngimage;
{从 png 图片到十六进制字符串}function Png2Hex(png: TPngImage): string;var stream: TMemoryStream;begin stream := TMemoryStream.Create; png.SaveToStream(stream); SetLength(Result, stream.Size * 2); BinToHex(stream.Memory, PChar(Result), stream.Size); stream.Free;end;
{从十六进制字符串恢复 png 图片}procedure Hex2Png(str: string; out png: TPngImage);var stream: TMemoryStream;begin if not Assigned(png) then png := TPngImage.Create; stream := TMemoryStream.Create; stream.SetSize(Length(str) div 2); HexToBin(PChar(str), stream.Memory, stream.Size); png.LoadFromStream(stream); stream.Free;end;
{测试}procedure TForm1.Button1Click(Sender: TObject);var png: TPngImage;begin png := TPngImage.Create; png.LoadFromFile('c:/temp/test.png'); Memo1.Text := Png2Hex(png); png.Free;end;
procedure TForm1.Button2Click(Sender: TObject);var png: TPngImage;begin png := TPngImage.Create; Hex2Png(Memo1.Text, png); Canvas.Draw(0, 0, png); png.Free;end;
来源:http://www.coder163.com/language/delphi/
相关阅读 >>
Delphi strutils.dupestring - 反复字符串
Delphi xe andriod 文件后缀对应mime类型
Delphi的tservice的windows�入桌面切�q
Delphi用多媒体库 bass.dll 播放 mp3 - 打开、播放、暂停、停止
更多相关阅读请进入《Delphi》频道 >>