我已根据这些说明(我下载了源代码)构建了WebP的
我将
然后,我添加了这段代码(在此处找到):
libwebp.dll
。我将
libwebp.dll
文件添加到了我的项目的bin
文件夹中。然后,我添加了这段代码(在此处找到):
Private Declare Function WebPEncodeBGRA Lib "libwebp.dll" (ByVal rgba As IntPtr, ByVal width As Integer, ByVal height As Integer, ByVal stride As Integer, ByVal quality_factor As Single, ByRef output As IntPtr) As Integer
Private Declare Function WebPFree Lib "libwebp.dll" (ByVal p As IntPtr) As Integer
Private Sub Encode()
Dim source As Bitmap = New Bitmap(Server.MapPath("images\") + "audio.png")
Dim data As BitmapData = source.LockBits(New Rectangle(0, 0, source.Width, source.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
Dim webp_data As IntPtr
Dim i As Integer = WebPEncodeBGRA(data.Scan0, source.Width, source.Height, data.Stride, 80, webp_data)
WebPFree(webp_data)
End Sub
我遇到了以下错误:
尝试加载具有不正确格式的程序。 (来自 HRESULT 的异常: 0x8007000B)
以下是我采取的措施(在 Dai 的评论之后):
- 我按如下方式构建了一个针对64位架构的dll:
nmake /f Makefile.vc CFG=release-dynamic RTLIBCFG=dynamic OBJDIR=output ARCH=x64
(此处也可参考) - 我检查了应用程序池的IIS,并将其属性
Enable32-Bit Applications
设置为False
- 我正在运行 Windows 10 64位版本
- 在代码后端,
Environment.Is64BitProcess
和Environment.Is64BitOperatingSystem
均评估为True
如何将图像编码并以WebP格式保存编码后的图像到磁盘上?
这是我使用的图像文件:
libwebp.dll
。 - Dai