要在 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.077652931213379 seconds