Несильно лучше чем было в версии на ХайАсме
Пытался, кстати "поднять" старую версию вправив ей мозги но УВЫ ... оказалось проще переписать с нуля ... хотя теперь можно будет сделать "Реинженериг" обратно в ХайАсм "Основной код" преобразования занимает несколько строк ...
Type
RG=Record R,G,B : byte; end;
Arr=Array [0..1] of RG;
...
//LI[] - Список кадров
// SQ корень квадратный из количества кадров (которое фиксировано привязано к квадратичному ряду ... )
SQ:=trunc(Sqrt(StrToint(Self.ComboBox1.Text)));
B.SetSize(ABS(RR.Right -RR.Left)*SQ,ABS(RR.Bottom -RR.Top)*SQ);//"Размер результата" размер_болка*SQ
for J:=0 to b.Height-1 do begin
for I:=0 to b.Width-1 do
begin
J1:=RR.Top*sq+J;I1:=RR.Left*sq +i;
B1:=TBitmap( LI[(i1 mod sq)+SQ*((J1 mod sq))]);
B.BeginUpdate(False);// это прикол LCL в ХайАсме с его Кол не нужен
Arr(b.ScanLine[J]^)[I]:=Arr(b1.ScanLine[J1 div sq]^)[i1 div sq];
B.EndUpdate(False);// тоже самое "только для LCL "
end;
//...
end;
//"Вот и вся недолга" !
Да чуть не забыл ...
Собственно новая версия "Подзорной трубы" Truba_DS_0_0058.7z
Продолжение следует !