Я создал libwebp.dll
для WebP, используя эти инструкции (я скачал этот исходный код)
Я добавил файл 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)
Что я также сделал (после комментариев Дая ниже):
- Я создал dll для 64-битной архитектуры следующим образом: toolchain-architectur">см. также здесь)
- Я проверил IIS для рассматриваемого пула приложений, и для его свойства
Enable32-Bit Applications
установлено значениеFalse
. - Я использую Windows 10 64 бит
- И
Environment.Is64BitProcess
, иEnvironment.Is64BitOperatingSystem
в коде программной части оцениваются какTrue
Как я могу закодировать изображение и сохранить закодированное изображение на диск в формате WebP?
Для тестирования на своем компьютере:
Загрузите скомпилированный и заархивированный файл libwebp. dll здесь. Это файл изображения, который я использую:
libwebp.dll
. - person Dai   schedule 30.04.2018Enable32-Bit Applications
установлено наFalse
, так что я думаю, что это тоже не так... - person Flo   schedule 30.04.2018