1

我想即时更改 Graphics32 的 TImgView32 的重采样内核。但是没有明显的区别。这是代码:

procedure TForm1.FormCreate(Sender: TObject);
begin
  ImgView321.Bitmap.LoadFromFile('1.bmp');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ImgView321.Scale := ImgView321.Scale*2;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ImgView321.Scale := ImgView321.Scale/2;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  ImgView321.Bitmap.ResamplerClassName := 'TKernelResampler'; 
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  ImgView321.Bitmap.ResamplerClassName := 'TNearestResampler'
end;
4

1 回答 1

1

当您选择“TKernelResampler”时,指定使用的内核很重要。默认值为 TBoxKernel,其结果与“TnearestResampler”几乎相同

实际上,从视觉角度来看,它是相同的,只是计算方式不同。

尝试使用“TCubicKernel”或“TLanczosKernel”。要获得更多控制,您还可以选择“THermiteKernel”或“TAlbrechtKernel”,它有两个控制参数(而不仅仅是一个)。

于 2019-03-19T21:09:35.807 回答