Конференция "Media" » Качественное и быстрое масштабирование картинки [D6, WinXP]
 
  • DVM © (14.10.07 19:36) [20]

    > > homm ©   (14.10.07 14:47) [15]

    вот с этим сравнивай http://sourceforge.net/projects/tfastdib
  • homm © (14.10.07 19:38) [21]
    > [19] DVM ©   (14.10.07 19:01)
    > Твой же код вообще не рабочий.

    О_о Да ну?
  • DVM © (14.10.07 19:40) [22]

    > О_о Да ну?

    вот представь себе Access Violation
  • homm © (14.10.07 19:41) [23]
    За ссылку сенкс, сам только ту версию нашел, что протестировал.


    > Результат 1390 даже для более большой картинки чем у тебя.

    И какое у твоей разрешение?
  • homm © (14.10.07 19:41) [24]
    > [22] DVM ©   (14.10.07 19:40)
    > вот представь себе Access Violation

    Ты не повар :)
  • DVM © (14.10.07 19:44) [25]

    > И какое у твоей разрешение?

    а у твоей? :)


    > Ты не повар :)

    Все то, что ты написал выше вставлено в форму с двумя кнопками и двумя Image. При нажатии на кнопку 1 -   AV. Delphi 7. Искать причину мне неохота.
  • homm © (14.10.07 19:44) [26]
    > [25] DVM ©   (14.10.07 19:44)
    > Искать причину мне неохота.

    Причина в том. что разрешение должно быть у картинки 1024*768, надо пологать ?
  • DVM © (14.10.07 19:44) [27]

    > И какое у твоей разрешение?

    800 на 600
  • homm © (14.10.07 19:49) [28]
    > [27] DVM ©   (14.10.07 19:44)

    В серьез полагаешь, что 800*600 больше, чем 1024*768? :)

    У меня получилось 844 для 1024*768, НО ты чувствуешь разницу между «FastResize» и «Качественное масштабирование» ??? Я думаю имеется виду как минимум, не хуже билинейного.
  • DVM © (14.10.07 19:50) [29]

    > Причина в том. что разрешение должно быть у картинки 1024*768,
    >  надо пологать ?

    Поменял на 1024*768*32 - теперь Stream Read Error

    У FastDIB результат почти не изменился - 1400 стало при перегоне в 640*482
    Если перегонять в 512 * 384, то результат вообще 1047
  • DVM © (14.10.07 19:51) [30]

    > ты чувствуешь разницу между «FastResize» и «Качественное
    > масштабирование» ??? Я думаю имеется виду как минимум, не
    > хуже билинейного.

    И какой метод интерполяции у тебя?
  • homm © (14.10.07 19:51) [31]
    for i := 0 to 999 do begin
     Bilinear24(BMP1,BMP2);
    end;



    Имеем 4280 :-Р
  • homm © (14.10.07 19:52) [32]
    > [30] DVM ©   (14.10.07 19:51)
    > И какой метод интерполяции у тебя?

    Билинейный.
  • homm © (14.10.07 19:53) [33]
    > Поменял на 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 ?
  • DVM © (14.10.07 19:57) [34]

    > НЕ ВЕРЮ!


    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;

  • DVM © (14.10.07 19:59) [35]

    > homm ©

    А так ты в 2 раза уменьшаешь! Я то сразу и не заметил.
  • DVM © (14.10.07 20:01) [36]

    > > НЕ ВЕРЮ!

    вот файл на котором тестирую: http://dvmuratov.narod.ru/1.bmp
  • homm © (14.10.07 20:06) [37]
    Блин, я чуть было не стал качать :)
    3 метра, ага? Нет  уж :)

    Выбрось FastDIB, уж по крайней мере билинейную интерпляцию он нифига не делает. Можеь проверить результат, полученый в фотошопе при уменьшении в 4 раза.
  • homm © (14.10.07 20:07) [38]
    Для пущей наглядности предлагаю сравнить как один слой на другом, выставив для верхнего режим Difference.
  • DVM © (14.10.07 20:08) [39]

    > Выбрось FastDIB, уж по крайней мере билинейную интерпляцию
    > он нифига не делает

    Делает.
    SmoothResize(BMP1,BMP2, rfBilinear);
 
Конференция "Media" » Качественное и быстрое масштабирование картинки [D6, WinXP]
Есть новые Нет новых   [134430   +2][b:0][p:0.001]