You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBuilder是否可以提取JPEG格式图片中的EXIF数据及相关细节?

PowerBuilder提取JPEG EXIF数据的相关解答

PowerBuilder原生没有封装直接读取JPEG EXIF信息的内置函数,但可以通过两种成熟方案实现该需求:

  • 方案1:调用Windows系统的GDI+ API实现
    你可以通过PB的外部函数声明能力,导入GDI+中GdipCreateFromHDC、GdipLoadImageFromFile、GdipGetPropertyItemSize、GdipGetPropertyItem等相关函数,直接读取JPEG文件的EXIF属性项,这种方式不需要依赖额外组件,适合轻量化需求。
    核心代码片段示例:
    // 先声明GDI+外部函数(示例,需根据你的PB版本调整参数类型匹配)
    FUNCTION ulong GdipLoadImageFromFile(string filename, ref ulong hImage) LIBRARY "gdiplus.dll"
    FUNCTION ulong GdipGetPropertyItemSize(ulong hImage, ulong propId, ref ulong size) LIBRARY "gdiplus.dll"
    // 调用逻辑
    ulong hImg, lSize
    string ls_Filepath = "C:\test.jpg"
    GdipLoadImageFromFile(ls_Filepath, hImg)
    GdipGetPropertyItemSize(hImg, 0x010F /* 拍摄设备型号属性ID */, lSize)
    
    注:使用前需要先初始化GDI+环境,用完后及时释放资源避免内存泄漏
  • 方案2:借助第三方封装好的PowerBuilder扩展组件
    现有社区开源的PB通用图像处理扩展包已经封装了EXIF读取逻辑,你直接导入对应pbl到你的项目中,调用封装好的of_get_exif_tag()这类方法即可直接拿到指定EXIF属性值,不需要自己处理API调用的细节,开发效率更高。

另外要注意,如果你需要读取的是JPEG的其他非EXIF细节(比如文件头、量化表等信息),可以直接通过PB的文件读取函数FileReadEx()按字节读取文件二进制内容,按照JPEG文件格式规范解析对应字段即可。

内容的提问来源于stack exchange,提问作者Bolivar PH Gaming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:12:01