AND_REY, действительно - скорость практически мгновенная даже на больших файлах! Идеально! Спасибо огромное!
Ребят, а ещё один вопрос. Скажите, как лучше реализовать (по какой формуле, что ли) следующее:
Вот строится картинка. Кол-во её пикселей составляет 480.000. В идеале соотношение сторон будет 800х600.
Если сделать вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Z, W, H, I: integer;
begin
H := 0;
W := 0;
Z := StrToInt(Edit1.Text);
for I := Trunc(Sqrt(Z)) downto 1 do
begin
H := I;
W := Z div H;
if W * H = Z then
break
end;
ShowMessage(Format('W = %d, H = %d', [W, H]))
end;
...то, в принципе, все нормально - 750x640 тоже будет смотреться, скажем так, "наглядно" для человека.
Но вот проблема: если число пикселей будет 480.001, то остается лишь один вариант - 12973х37. Картинка с такой длиной и высотой для пользователя, конечно, не самый лучший вариант. У этого числа только два таких простых множителя, другого разложения на множители нет.
Выходит, в таких случаях лучше будет, нпаример, дописать ещё один любой пиксель? Он будет не заметен на общей картинке, но тогда длина и ширина более "человечные" получатся.