本文整理自网络,侵删。
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;
相关阅读 >>
Delphi 多次改变 richedit.text部份文本的颜色后,出现所有字体都变色的的解决办法
Delphi2010:把stringgrid数据保存到excel
更多相关阅读请进入《Delphi》频道 >>