之前写过一篇同样的 Blog。
之前的 Delphi 要让 DBImage 支持 JPG 比较麻烦。
新版的 Delphi 比如 10.2 版,已经内置了对 JPG 的支持。
如果一个 Blob 字段里存放的数据是 JPG 图片,则直接把一个 DBImage 指向该字段,就会自动显示。
等等,程序会出异常的。除非在 DBImage 所在单元加上 uses Vcl.Imaging.jpeg
另:对于 FireBird 数据库,Blob 字段的定义,SubType 设置为 0,CharSet 啥都不要设。否则写入 JPG 二进制数据,它会按照 CharSet 重新编码。再读出来,就不是原来的 JPG 数据了,结果导致显示错误。