![](http://i.piccy.info/i9/55626abfb9559fc06123037b0dfeac02/1501621082/36255/913427/0_0058_2_500.jpg)
![](http://i.piccy.info/i9/2b50ffdb885d4c03fb7c56b6d8898b92/1501621147/25581/913427/0_0058_3_500.jpg)
Несильно лучше чем было в версии на ХайАсме
Пытался, кстати "поднять" старую версию вправив ей мозги но УВЫ ... оказалось проще переписать с нуля ... хотя теперь можно будет сделать "Реинженериг" обратно в ХайАсм "Основной код" преобразования занимает несколько строк ...
![](/img/icon_plus.gif)
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;
//"Вот и вся недолга" !
Да чуть не забыл ...
Собственно новая версия "Подзорной трубы"
![](/img/smilies/icon_arrow.gif)
![](/img/smilies/icon_idea.gif)
Продолжение следует !