问题来源:http://www.cnblogs.com/del/archive/2010/04/24/1719631.html#2079634
使用下面的 Hex2Png() 函数解析黑人给的数据,结果是一个 93396 的验证码图片。
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;
分类:
问与答
, 常用自定义函数、单元
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2010-04-26 在 API 函数中使用 PChar 参数的几种方法
2010-04-26 学 Win32 汇编[32] - 子程序进阶
2009-04-26 发现一个奇怪的问题: 不能把文件取名为 con
2008-04-26 分析 TStringList 存取对象的特点 - 还是回复 Test1234 的问题