-
> homm ©
Сравнивать в данном случае некорректно. Функции FastDIB рассчитаны на произвольный размер, а не на уменьшение в 2 раза.
-
Действительно, делает :) 109 секунд делает :)
-
А у меня за одну :)
-
> Действительно, делает :) > 109 секунд делает :)
че то тут не так
-
> [40] DVM © (14.10.07 20:10) > Сравнивать в данном случае некорректно.
Я об этом сразу сказал, просто ты кое кто считает, что я «зря фразами кидаюсь» ;)
-
> [43] DVM © (14.10.07 20:13) > че то тут не так
Я итебе скажу, что тцт не так :) procedure SmoothResize24(Src,Dst:TFastDIB;Filter:TResizeFilter);
if s<1 then pw^.w:=Round(f((m-pw^.pos)*s)*s*$10000) Вот эта вот букавка F — это вызов функции… Для каждого пикселя… естествеено это жопа.
-
> homm © (14.10.07 20:15) [45]
Точно.
-
> homm © (14.10.07 20:07) [38] > Для пущей наглядности предлагаю сравнить как один слой на > другом, выставив для верхнего режим Difference.
Кстати все ок. 1 к 1 как в фотошопе.
-
5200 мсек занимет 1000 масштабирований с билинейной фильтрацией
-
procedure TForm1.Button2Click(Sender: TObject);
var
BMP1: TFastDIB;
BMP2: TFastDIB;
t,i : DWORD;
begin
BMP1 := TFastDIB.Create;
BMP1.LoadFromFile('c:\1.bmp');
BMP2 := TFastDIB.Create;
BMP2.SetSize(512, 384, 32);
T := GetTickCount();
for i := 0 to 999 do begin
Bilinear32(BMP1,BMP2);
end;
ShowMessage(inttostr(Gettickcount-t));
BMP2.Draw(image2.Canvas.Handle, 0, 0);
BMP2.SaveToFile('C:\2.BMP');
end;
Файл 2 и полученный в фотошопе после масштабирования с билинейной фильтрацие идентичны. Так что не надо гнать на FastDIB. :) Если учесть, что это результат для произвольных размеров, а не для 2 или 4, то он не хуже чем твой. Следовательно FastDIB обогнать все же сложно.
-
> [49] DVM © (14.10.07 21:20) > Файл 2 и полученный в фотошопе после масштабирования с билинейной > фильтрацие идентичны.
> [37] homm © (14.10.07 20:06) > Можеь проверить результат, полученый в фотошопе при уменьшении в ЧЕТЫРЕ раза.
-
В том, и штука, что он берет исходный пиксель и 2 соседних, результат верен только для 2-х кратного и менее-кратного ументшения :)
-
> > Можеь проверить результат, полученый в фотошопе при уменьшении > в ЧЕТЫРЕ раза.
Все ок. Проверь сам. Может ты неправильно фильтрацию в фотошопе случайно выбрал?
-
уменьшил вообще до 100х100 , т.е. с изменением пропорций. Результат идентичен фотошоповскому. Увеличил до 1000х1000 - тоже идентично.
-
-
> 3) Их разность :)
а сдвинуть слои не пробовал?
-
> homm © (14.10.07 21:50) [54]
у тебя картинка какой цветности? 24 или 32? Функцию FastDIB берешь какую?
я работаю с картинкой из папки мои рисунки (Закат.jpg), которую я фотошопом увеличил до 1024 на 768 32 бит цвет и сохранил в BMP.
-
Куда сдвигать, они разные!! Приглядись к первой и второй картинке, они очень разные!
-
> [56] DVM © (14.10.07 21:53) > у тебя картинка какой цветности? 24 или 32?
32, Bilinear32
> Закат.jpg Ты бы еше квадрат тупо красным залал…
-
> homm © (14.10.07 21:50) [54]
осторожно, у меня рядом дети сидят %)
|