Конференция "Media" » Вывод изображения в GDI+
 
  • 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 создаёт промежуточный буфер, что выливается в приличные тормоза при больших растрах. Если сначала вывести изображение в нормальном масштабе или в увеличенном, то при дальнейше его выводе любым размером всё работает быстро.
 
Конференция "Media" » Вывод изображения в GDI+
Есть новые Нет новых   [134431   +10][b:0][p:0.001]