// запомним первоначальный размер области вывода иллюстрации iw := Image1.Width; ih := image1.Height;
// изменение размера области вывода иллюстрации пропорционально // размеру иллюстрации Procedure Tform1.ScaleImage; var pw, ph : integer; // размер иллюстрации scaleX, scaleY : real; // масштаб по X и Y scale : real; // масштаб begin // иллюстрация уже загружена // получим ее размеры pw := Image1.Picture.Width; ph := 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;
// изменим размер области вывода иллюстрации Image1.Height := Round(Image1.Picture.Height*scale); Image1.Width := Round(Image1.Picture.Width*scale); // так как Strech = True и размер области пропорционален // размеру картинки, то картинка масштабируется без искажений end;
Из книги Никиты Култина "Delphi в примерах и задачах"
Артемий
15.08.2006 17:29
Не мне надо чтобы изменялось разрешение и сохранялось.ТОЛЬКО мне надо это так - например разрешние: 120 на 120.Я хочу изменить его но 176 на 220, а не на 176 на 176 как это делается стандартно!
klem4
15.08.2006 17:31
Цитата
например разрешние: 120 на 120.Я хочу изменить его но 176 на 220
Ну так и меня свойства Height и Width объекта Image1.Picture
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.