找回密码
 加入
搜索
查看: 405|回复: 4

[网络通信] 【已解决】请问有人知道如何调用 libwebp.dll 读取WEBP文件吗?

[复制链接]
发表于 2023-5-9 14:24:18 | 显示全部楼层 |阅读模式
本帖最后由 posheng 于 2023-5-10 16:19 编辑

【已解决】3、4 楼有 完整代码。

用网上的易语言例子确实可以,可不知用 DLLCALL 如何调用

Gdiplus初始化 ()
WebPData = 读入文件 (文件路径)
BGRADataInt = WebPDecodeBGRA (WebPData, 取字节集长度 (WebPData), 参数_宽度, 参数_高度)
位深 = 32
跨步 = 左移 (右移 (参数_宽度 × 位深 + 31, 5), 2)
GP位图.创建自扫描行 (参数_宽度, 参数_高度, 跨步, #像素格式_32bppARGB, BGRADataInt)
写到文件 (文件路径 + “.jpg”, GP位图.保存到字节集 (#图像格式_JPEG, ))
释放内存 (BGRADataInt)

官方API说明看了多遍,还是弄不懂~汗
https://developers.google.cn/speed/webp/docs/api?hl=zh-cn&skip_cache=true


https://s3.amazonaws.com/resizer-dynamic-downloads/webp/0.5.2/x86_64/libwebp.dll

https://s3.amazonaws.com/resizer-dynamic-downloads/webp/0.5.2/x86/libwebp.dll


发表于 2023-5-9 20:30:28 | 显示全部楼层
提供一下dll啊
发表于 2023-5-10 11:31:57 | 显示全部楼层
有WEBP的UDF






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2023-5-10 13:00:04 | 显示全部楼层
#PRE_UseX64=n
#include <GDIPlus.au3>
Local $hFile = FileOpen('test_webp.webp',16)
Local $bData=FileRead($hFile)
FileClose($hFile)
Local $Buffer = DllStructCreate('byte[' & BinaryLen($bData) & ']')
DllStructSetData($Buffer, 1, $bData)
Local $Width, $Height
Local $pBGRAData = WebPDecodeBGRA(DllStructGetPtr($Buffer), BinaryLen($bData), $Width, $Height)
Local $sFile = @ScriptDir & "\Test.jpg"
_GDIPlus_Startup()
Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($Width, $Height, $GDIP_PXF32ARGB, BitShift($Width, -2), $pBGRAData)
_GDIPlus_ImageSaveToFile($hBitmap, $sFile)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_Shutdown()
If $pBGRAData Then WebPFree($pBGRAData)
Func WebPDecodeBGRA($pData, $data_size, ByRef $Width, ByRef $Height)
        Local $Ret = DllCall('libwebp.dll', 'ptr:cdecl', 'WebPDecodeBGRA', 'ptr', $pData, 'DWORD', $data_size, 'DWORD*', 0, 'DWORD*', 0)
        $Width = $Ret[3]
        $Height = $Ret[4]
        Return $Ret[0]
EndFunc   ;==>WebPDecodeBGRA
Func WebPFree($pData)
        Local $Ret = DllCall('libwebp.dll', 'ptr:cdecl', 'WebPFree', 'ptr', $pData)
        Return $Ret[0]
EndFunc   ;==>WebPFree

 楼主| 发表于 2023-5-10 16:15:50 | 显示全部楼层
一直搜不到相关资料,没想到 UDF 都有了....

haijie1223 的代码效率高。

非常感谢 gyp2000  和 haijie1223 两位的热心帮助。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-26 20:28 , Processed in 0.075748 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表