要在 Delphi 中将目录下所有 JPG、JPEG 和 PNG 图像转换为 WebP 图像,可以使用第三方库,如 libwebp
。以下是一个示例,展示如何使用 Delphi 和 libwebp
将图像转换为 WebP 格式。
首先,你需要下载并配置 libwebp
库。你可以从 Google WebP 下载 libwebp
库,并将其包含在你的 Delphi 项目中。
然后,编写以下 Delphi 代码来实现图像格式的转换:
创建一个新的 Delphi VCL 应用程序。
在表单上添加一个按钮控件和一个 TFileOpenDialog
控件。
在项目目录中创建一个 libwebp
文件夹,并将 libwebp.dll
文件放入其中。
在表单单元中编写以下代码:
program example; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Winapi.GDIPAPI, Winapi.GDIPOBJ, System.Classes, libwebp in '..\..\src\libwebp.pas', WebpHelpers in '..\..\src\WebpHelpers.pas'; var stream: TMemoryStream; fs: TFileStream; bmp : TGPBitmap; dat : PByte; begin try WriteLn('Using libwebp encoder version: ' + GetWebpVersionString(WebPGetEncoderVersion)); WriteLn('Using libwebp decoder version: ' + GetWebpVersionString(WebPGetDecoderVersion)); // Demo stream := TMemoryStream.Create; bmp := TGPBitmap.Create('test.png'); WebpEncode(stream, bmp, 100); stream.SaveToFile('_.webp'); bmp.Free; stream.Free; Writeln('DONE ENCODE'); fs := TFileStream.Create('_.webp', fmOpenRead); WebpDecode(fs, dat, bmp); bmp.Save('decoded.png', gPNG); bmp.free; WebPFree(dat); fs.Free; Writeln('DONE DECODE'); writeln('DONE'); Readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.034709930419922 seconds