-
Vetal (25.11.08 22:16) [0]Здравствуйте, есть вопросик. Не могу понять, почему при двух способах вывода:var
FBitmap: TGPBitmap;
Graph: TGPGraphics;
i: integer;
1)Graph.SetInterpolationMode(InterpolationModeNearestNeighbor);
Graph.DrawImage(FBitmap, 0, 0, FBitmap.GetWidth, FBitmap.GetHeight);
for i := 0 to 10 do
Graph.DrawImage(FBitmap, 0, 0, FBitmap.GetWidth*0.2, FBitmap.GetHeight*0.2);
2)Graph.SetInterpolationMode(InterpolationModeNearestNeighbor);
for i := 0 to 10 do
Graph.DrawImage(FBitmap, 0, 0, FBitmap.GetWidth*0.2, FBitmap.GetHeight*0.2);
второй вариант работает раз в 20 быстрее. -
Vetal (25.11.08 23:48) [1]Точнее не второй, а первый.
-
brother © (28.11.08 09:22) [2]> 1)
> Graph.SetInterpolationMode(InterpolationModeNearestNeighbor)
> ;
> Graph.DrawImage(FBitmap, 0, 0, FBitmap.GetWidth, FBitmap.GetHeight)
> ;
> for i := 0 to 10 do
> Graph.DrawImage(FBitmap, 0, 0, FBitmap.GetWidth*0.2,
> FBitmap.GetHeight*0.2);
>
> 2)
> Graph.SetInterpolationMode(InterpolationModeNearestNeighbor)
> ;
> for i := 0 to 10 do
> Graph.DrawImage(FBitmap, 0, 0, FBitmap.GetWidth*0.2,
> FBitmap.GetHeight*0.2);
и что это за "обрезки" кода? -
Vetal (28.11.08 20:14) [3]Если загрузть изображение и выводить его в уменьшенном размере, то по ходу при каждом выводе объект Graphics создаёт промежуточный буфер, что выливается в приличные тормоза при больших растрах. Если сначала вывести изображение в нормальном масштабе или в увеличенном, то при дальнейше его выводе любым размером всё работает быстро.