Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Изменить разрешение

Автор: Артемий2 15.08.2006 20:29

Как изменить разрешение картинки.Я использую TImage.

Автор: klem4 15.08.2006 21:29

Можно изменить масштабирование :

Image1.Height := Image1.Picture.Height * scale;
Image1.Width := Image1.Picture.Width * scale;
// где scale - масштаб



Вот смотри :

  Image1.AutoSize := False;
Image1.Stretch := True; // разрешим масштабирование

// запомним первоначальный размер области вывода иллюстрации
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 в примерах и задачах"

Автор: Артемий2 15.08.2006 21:29

Не мне надо чтобы изменялось разрешение и сохранялось.ТОЛЬКО мне надо это так - например разрешние: 120 на 120.Я хочу изменить его но 176 на 220, а не на 176 на 176 как это делается стандартно!

Автор: klem4 15.08.2006 21:31

Цитата
например разрешние: 120 на 120.Я хочу изменить его но 176 на 220


Ну так и меня свойства Height и Width объекта Image1.Picture