-
-
> [19] DVM © (14.10.07 19:01) > Твой же код вообще не рабочий.
О_о Да ну?
-
> О_о Да ну?
вот представь себе Access Violation
-
За ссылку сенкс, сам только ту версию нашел, что протестировал.
> Результат 1390 даже для более большой картинки чем у тебя.
И какое у твоей разрешение?
-
> [22] DVM © (14.10.07 19:40) > вот представь себе Access Violation
Ты не повар :)
-
> И какое у твоей разрешение?
а у твоей? :)
> Ты не повар :)
Все то, что ты написал выше вставлено в форму с двумя кнопками и двумя Image. При нажатии на кнопку 1 - AV. Delphi 7. Искать причину мне неохота.
-
> [25] DVM © (14.10.07 19:44) > Искать причину мне неохота.
Причина в том. что разрешение должно быть у картинки 1024*768, надо пологать ?
-
> И какое у твоей разрешение?
800 на 600
-
> [27] DVM © (14.10.07 19:44)
В серьез полагаешь, что 800*600 больше, чем 1024*768? :)
У меня получилось 844 для 1024*768, НО ты чувствуешь разницу между «FastResize» и «Качественное масштабирование» ??? Я думаю имеется виду как минимум, не хуже билинейного.
-
> Причина в том. что разрешение должно быть у картинки 1024*768, > надо пологать ?
Поменял на 1024*768*32 - теперь Stream Read Error
У FastDIB результат почти не изменился - 1400 стало при перегоне в 640*482 Если перегонять в 512 * 384, то результат вообще 1047
-
> ты чувствуешь разницу между «FastResize» и «Качественное > масштабирование» ??? Я думаю имеется виду как минимум, не > хуже билинейного.
И какой метод интерполяции у тебя?
-
for i := 0 to 999 do begin
Bilinear24(BMP1,BMP2);
end; Имеем 4280 :-Р
-
> [30] DVM © (14.10.07 19:51) > И какой метод интерполяции у тебя?
Билинейный.
-
> Поменял на 1024*768*32 - теперь Stream Read Error
НЕ ВЕРЮ! Image1.Picture.bitmap.LoadFromFile('c:\52a.bmp');
Image1.Picture.Bitmap.PixelFormat := pf32Bit;
Image1.Picture.Bitmap.HandleType := bmDIB;
Image2.Picture.Bitmap := NewDIBBitmap(512, 384, pf32bit);
T := GetTickCount();
for i := 0 to 999 do begin
BitmapAntialias2x(Image1.Picture.Bitmap, Image2.Picture.Bitmap);
end;
Все ли так? Разрешение точно 1024*768 ?
-
> НЕ ВЕРЮ!
procedure TForm1.Button1Click(Sender: TObject);
var t,i : DWORD;
begin
Image1.Picture.bitmap.LoadFromFile('c:\1.bmp');
Image1.Picture.Bitmap.PixelFormat := pf32Bit;
Image1.Picture.Bitmap.HandleType := bmDIB;
Image2.Picture.Bitmap := NewDIBBitmap(512, 384, pf32bit);
T := GetTickCount();
for i := 0 to 999 do begin
BitmapAntialias2x(Image1.Picture.Bitmap, Image2.Picture.Bitmap);
end;
ShowMessage(inttostr(Gettickcount-t));
end;
-
> homm ©
А так ты в 2 раза уменьшаешь! Я то сразу и не заметил.
-
-
Блин, я чуть было не стал качать :) 3 метра, ага? Нет уж :)
Выбрось FastDIB, уж по крайней мере билинейную интерпляцию он нифига не делает. Можеь проверить результат, полученый в фотошопе при уменьшении в 4 раза.
-
Для пущей наглядности предлагаю сравнить как один слой на другом, выставив для верхнего режим Difference.
-
> Выбрось FastDIB, уж по крайней мере билинейную интерпляцию > он нифига не делает
Делает. SmoothResize(BMP1,BMP2, rfBilinear);
|