|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.01.2017, 13:16 | #1 |
Регистрация: 18.01.2014
Сообщений: 3
|
как уменьшить TImage без потери четкости
В Delphi XE7 Architecht добавляю на форму TImage. Загружаю в него png-картинку (картинка в виде раскраски). При уменьшении картинки через stretch линии становятся нечеткими, пунктирными, где-то исчезают. При увеличении картинки линии, соответственно, видно лучше. Как можно при уменьшении сохранить четкость линий?
Единственное решение, которое мне известно - использование картинки с уже заранее нужными первоначальными размерами, тогда четкость изображения не теряется. Последний раз редактировалось artovbaz; 03.01.2017 в 13:33. |
09.01.2017, 19:30 | #2 |
Регистрация: 27.12.2016
Сообщений: 9
|
может это вам поможет
// изменение размера области вывода иллюстрации
// пропорционально размеру иллюстрации Procedure Scalelmage; var pw, ph : integer; // размер иллюстрации scaleX, scaleY : real; // масштаб по Х и Y scale : real; // общий масштаб begin // иллюстрация уже загружена // получим ее размеры pw := Form1.Image1.Picture.Width; ph := Form1.Image1.Picture.Height; if pw > iw // ширина иллюстрации больше ширины компонента Image then scaleX := iw/pw // нужно масштабировать else scaleX := 1; if ph > ih // высота иллюстрации больше высоты компонента then scaleY := ih/ph // нужно масштабировать else scaleY := 1; // выберем наименьший коэффициент if scaleX < scaleY then scale := scaleX else scale := scaleY; // изменим размер области вывода иллюстрации Form1.Image1.Height := Round(Form1.Image1.Picture.Height*s cale) Form1.Image1.Width := Round(Form1.Image1.Picture.Width*sc ale); // т. к. Strech = True и размер области пропорционален // размеру картинки, то картинка масштабируется без искажений end;
Хорошо поставленный вопрос это половина ответа.
Круг это свёрнутый в кольцо квадрат. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ресайз PNG без потери прозрачности | RidDozZ | Мультимедиа в Delphi | 2 | 01.08.2012 13:40 |
Как переделать gif в jpeg без потери анимации | Shadow78 | Помощь студентам | 10 | 24.09.2011 02:31 |
Объединение ячеек без потери значений | Mopsusha | Microsoft Office Excel | 3 | 08.08.2011 06:51 |
Если остановился поток (TThread). Как перезапустить без потери памяти | Zuzlan | Общие вопросы Delphi | 9 | 01.02.2011 13:57 |
Как уменьшить картинку быстро но без изменения палитры | Joker_kpi | Общие вопросы Delphi | 2 | 04.06.2007 23:49 |