动态更改Graphics32的TImgView32重采样器内核

问题描述 投票:1回答: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;
delphi resampling graphics32
1个回答
1
投票

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

事实上,从视觉角度来看,它只是一个不同的计算。

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

© www.soinside.com 2019 - 2024. All rights reserved.