Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Потеря качества при уменьшении иображения


Qwertyk ©   (2005-07-08 19:18:00) 

Здравствуйте! Вот такая проблема: есть некая картинка размером 1500 на 1000 (к примеру). Мне нужно ее уменьшить на половину и вставить в один из canvas'ов. Так проблема в том что при уменьшении картинки получается очень плохое изображение(качество). Как быть?

   Bmp2.LoadFromFile('c:\1.bmp');

   Bmp.Height:=666;
   Bmp.Width:=212;

   Rect1.Left:=0;
   Rect1.Top:=0;
   Rect1.Right:=212;
   Rect1.Bottom:=666;
   
   bmp.Canvas.StretchDraw(rect1,bmp2);
   bmp.SaveToFile('c:\2.bmp');

Делал примерно так. В итоге получался файл 2.bmp с плохи качеством. Как этого можно избежать?


Eraser   (2005-07-08 23:09:00) [1]

Решение в даном случае простое: использовать вместо физических пикселей (точек) логические пиксели.

Именно это я и имел ввиду )


–=ХР=–   (2005-07-08 22:33:00) [2]

Ага, так я понял ворд экстраполирует картинку именно до DPI, независимо от разрешения?

Вы, может, и поняли, только я Ваш вопрос что-то не понял. Sorry. :-/

MS Word производит сглаживание для получения наиболее оптимального изображения на конкретно взятом устройстве вывода. Что конкретно подразумевают разрабочики MS под словом "оптимальность" я не знаю, но получается у них неплохо.

Решение в даном случае простое: использовать вместо физических пикселей (точек) логические пиксели. Плюс, соответствующие способы конвертирования из одних логических координат в другие. Не только координаты векторных примитивов, но и их атрибуты, такие как толщина линии, например. Не только векторные изображения, но и растровые.

И еще: оптимальное качество получается тогда, когда DPI оригинала и устройства вывода совпадают. В любом случае, при несовпадении DPI оригинала и устройства вывода, будет ухудшение качества изображения.


Eraser   (2005-07-08 22:14:00) [3]

–=ХР=–   (08.07.05 21:57) [4]
Ага, так я понял ворд экстраполирует картинку именно до DPI, независимо от разрешения?

Qwertyk ©

Ну значит ищи такие алгоритмы, и изобретай велосипед с распечаткой )


–=ХР=–   (2005-07-08 21:57:00) [4]

Если изображение растровое, то не должно быть разницы между вордом.

Word экстраполирует растровые изображения при масштабировании, в случае несоответствия DPI между оригиналом растра и устройством вывода.


Eraser   (2005-07-08 21:40:00) [5]

Qwertyk ©   (08.07.05 20:15) [2]

Если изображение растровое, то не должно быть разницы между вордом.
Что на картинке?


Qwertyk   (2005-07-08 20:15:00) [6]

Спасибо.
Опять вопрос вот уменьшил я размер изображения, далее вставляю его в канву, но при печате качество изображения не очень (не так к примеру если печатать из ворда)


palva   (2005-07-08 19:41:00) [7]

Надо уменьшать хорошим интерполяционным алгоритмом алгоритмом. Наверняка и компоненты написаны. Поищи по словам bicubic resample delphi component


Наверх

Титульная страница Поиск, карта сайта Написать письмо