Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.24;
Скачать: CL | DM;

Вниз

Проблема оптимизации картинки при изменении размера   Найти похожие ветки 

 
Don ©   (2002-02-12 01:55) [0]

При работе над электронным каталогом столкнулся с проблемой качества картинок. Картинки гружу в компонент наследованыый от TPaintBox
- Вначале работал с bmp:
Picture.LoadFromFile(FileName);
... вычисляю пропорциональный OutRect и вывожу
Canvas.StretchDraw(outrect, Picture.Graphic);

Приемлемое качество получается в узком диапазоне размеров OutRect, а их надо менять от трети до полного экрана в 1024*768 и 800*600.

- Пытался "играть" размерами исходной картинки - малоэффективно.
- Пытался перейти на jpeg и автоматически переключать шкалы:
...
Ratio := aOriginalWidth / (OutRect.Right - OutRect.Left);
if Picture.Graphic is TJPEGImage then begin
if Ratio < 1.25 then
TJPEGImage(Picture.Graphic).Scale := jsFullSize;
... и далее - jsHalf, jsQuarter ...
end;

Результат и здесь не впечатляет. А стандартная смотрелка из XP блестяще отображает картинки едва не любых размеров хоть на одну восьмую, хоть на полный экран! Понятно, что там на лету проводится оптимизация.
Проблема наверняка не новая. Может кто-нибудь сочтёт возможным поделиться готовым решением или хотя бы подсказать направление.
От тупых попыток подобрать режим уже едет крыша!


 
MetallAdm ©   (2002-02-12 17:43) [1]

А если попробовать блюринг (размывку) ??



 
Don ©   (2002-02-12 18:40) [2]

Остаётся узнать, какими средствами его выполнять. Впрочем, делал я это для пробы в Фотошопе - ничего хорошего!


 
MetallAdm ©   (2002-02-13 09:27) [3]

ну как помоему сам же фотощоп при трансформации
делает что то вроде блюринга или я ошибаюсь ??


а алгоритм блюринга можно найти где угодно
простой пример
енто вокруг точки Х суммируешь все элементы
тоесть сумма = 40 в данном примере и
находишь средне арифметическое то бишь Х=40/8

1 2 3
5 Х 6
7 8 9

Вот в принципе так :))



 
Don ©   (2002-02-13 10:01) [4]

Спасибо! Обязательно попробую!



Страницы: 1 вся ветка

Текущий архив: 2002.06.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-77346
valerchik
2002-06-13 00:45
2002.06.24
как набрать номер и залогиниться к провайдеру...


1-77405
Big Daddy
2002-06-13 21:08
2002.06.24
Как осуществить затемнение Image1


3-77318
Андр
2002-05-30 18:56
2002.06.24
Проблема с dxDBGrid


1-77374
Dmitry Sheenok
2002-06-10 19:38
2002.06.24
Код виртуальной клавиши


3-77265
PSZ
2002-05-30 12:10
2002.06.24
Как в DBGrid в ячейку засунуть рисунок ?