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

Вниз

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

 
Qwertyk ©   (2005-07-08 19:18) [0]

Здравствуйте! Вот такая проблема: есть некая картинка размером 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 с плохи качеством. Как этого можно избежать?


 
palva ©   (2005-07-08 19:41) [1]

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


 
Qwertyk ©   (2005-07-08 20:15) [2]

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


 
Eraser ©   (2005-07-08 21:40) [3]

Qwertyk ©   (08.07.05 20:15) [2]

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


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

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

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


 
Eraser ©   (2005-07-08 22:14) [5]

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

Qwertyk ©

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


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

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

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

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

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

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


 
Eraser ©   (2005-07-08 23:09) [7]

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

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



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

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

Наверх




Память: 0.48 MB
Время: 0.054 c
14-1120257838
АпЭнд
2005-07-02 02:43
2005.07.25
А есть ли компонент TUpDown для Float ов ?


3-1118818906
salexn
2005-06-15 11:01
2005.07.25
Oracle и работа с датами


6-1113550613
X-Disa
2005-04-15 11:36
2005.07.25
Проверка коннекта


14-1120391464
ArMellon
2005-07-03 15:51
2005.07.25
php


1-1120646620
Demidoff
2005-07-06 14:43
2005.07.25
Есть ли в Delphi компонент по работе с архивами?