Изменение ядра ресемплера TImgView32 от Graphics32 на лету - PullRequest
1 голос
/ 19 марта 2019

Я хочу изменить ядро ​​ресэмплинга TImgView32 от Graphics32 на лету.Однако нет видимой разницы.Вот код:

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;

1 Ответ

1 голос
/ 20 марта 2019

Когда вы выбираете 'TKernelResampler', важно указать ядро, которое используется. По умолчанию это TBoxKernel с результатом, который почти идентичен 'TNearestResampler'

Фактически это идентично с визуальной точки зрения, просто другое вычисление.

Попробуйте использовать «TCubicKernel» или «TLanczosKernel». Для большего контроля вы также можете выбрать «THermiteKernel» или «TAlbrechtKernel», который имеет два параметра управления (вместо одного).

...