delphi Android 创建缩略图,delphi实现批量缩略图生成工具开发代码
时间: 2024-03-09 08:49:46 浏览: 86
以下是 Delphi 实现批量缩略图生成工具的示例代码:
```
uses
FMX.Graphics, System.IOUtils;
procedure GenerateThumbnail(const ASourceFile, ATargetFile: string; const AWidth, AHeight: Integer);
var
Bitmap: TBitmap;
ThumbBitmap: TBitmap;
Scale: Single;
begin
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile(ASourceFile);
if (Bitmap.Width > AWidth) or (Bitmap.Height > AHeight) then
begin
Scale := Min(AWidth / Bitmap.Width, AHeight / Bitmap.Height);
ThumbBitmap := Bitmap.CreateThumbnail(Round(Bitmap.Width * Scale), Round(Bitmap.Height * Scale));
end
else
ThumbBitmap := Bitmap;
ThumbBitmap.SaveToFile(ATargetFile);
finally
Bitmap.Free;
ThumbBitmap.Free;
end;
end;
procedure GenerateThumbnails(const ASourceFolder, ATargetFolder: string; const AWidth, AHeight: Integer);
var
Files: TStringDynArray;
I: Integer;
SourceFile, TargetFile: string;
begin
Files := TDirectory.GetFiles(ASourceFolder, '*.*', TSearchOption.soAllDirectories);
for I := 0 to High(Files) do
begin
SourceFile := Files[I];
TargetFile := TPath.Combine(ATargetFolder, TPath.ChangeExtension(TPath.GetRelativePath(ASourceFolder, SourceFile), '.jpg'));
GenerateThumbnail(SourceFile, TargetFile, AWidth, AHeight);
end;
end;
```
该示例代码使用了 FMX.Graphics 单元中的 TBitmap 类来加载、缩放和保存图像。GenerateThumbnail 过程接受源文件路径和目标文件路径,以及所需的缩略图宽度和高度。如果源图像的宽度或高度大于所需的尺寸,则会创建一个缩略图,否则直接使用原始图像。GenerateThumbnails 过程接受源文件夹路径和目标文件夹路径,以及所需的缩略图宽度和高度。它会递归地查找源文件夹中的所有文件,并为每个文件生成一个缩略图,将其保存到目标文件夹中,使用与源文件相同的相对路径和 .jpg 扩展名。
阅读全文