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

Вниз

Как сделать zoom в TImage   Найти похожие ветки 

 
din_tsk   (2004-01-10 12:57) [0]

Народ, помогите пожалуйста!!! Загружаю картинку в TImage. TImage стандартных размеров. Необходимо картинку отмасштабировать под TImage (т.е. сделать zoom)
Горю!!!!


 
Romkin ©   (2004-01-10 13:04) [1]

stretch & proportional


 
din_tsk   (2004-01-10 13:17) [2]

Извините, где в 5 дельфе у TImage есть proportional?


 
YuRock ©   (2004-01-10 13:21) [3]

TImage.Proportional (на Object Inspector"е тоже есть:)))


 
din_tsk   (2004-01-10 13:31) [4]

Извините, но у меня этого нет


 
YuRock ©   (2004-01-10 13:42) [5]

Понятно. Извините. Тогда надо либо перейти на Delphi6 (что очень быстро), либо самому следить за пропорциями.
Если уточните задачу - можно будет уточнить ответ.


 
Intell ©   (2004-01-10 13:42) [6]

В меню View вруби Object Inspector. Или у тебя вообще его нет?


 
Romkin ©   (2004-01-10 13:44) [7]

Упс! Сорри. Нету пропорциональности в D5. Но всегда можно подогнать размеры Image по соотношению сторон


 
Romkin ©   (2004-01-10 13:45) [8]

Упс! Сорри. Нету пропорциональности в D5. Но всегда можно подогнать размеры Image по соотношению сторон


 
din_tsk   (2004-01-10 13:51) [9]

На D6 перейти не смогу, потому что есть компоненты , которые не написаны под нее.
Точнее задача вот: Есть картинки (куча) на каждый товар. Размеры у них разные. В окошке "Свойства товаров" необходимо их показывать. Там есть TImage виксированных размеров. Когда загружаешь со strech то картинка безобразно растягивается. Нуобходимо вывести картинку не изменяя размеры TImage. Пытаюсь делать так, но картинка только режется:
JpegIm := TJpegImage.Create;
bm := TBitMap.Create;
JpegIm.LoadFromFile("file");
bm.Assign(JpegIm);
scale:=Image1.Width/JpegIm.Width;
bm.Width:=Round(JpegIm.Width*scale);
bm.Height:=Round(JpegIm.Height*scale);

Image1.Picture.Assign(bm);
JpegIm.Destroy;
bm.Destroy;


 
YuRock ©   (2004-01-10 14:06) [10]

Попробуйте вместо


bm.Width:=Round(JpegIm.Width*scale);
bm.Height:=Round(JpegIm.Height*scale);

Image1.Picture.Assign(bm);


написать


var
Rc: TRECT;
...
begin
...
Rc.Width := JpegIm.Width*scale;
Rc.Height := JpegIm.Height*scale;
Image1.Canvas.StretchDraw(Rc; TGraphic(JpegIm));
...
end;


переменная bm тогда вообще не нужна.


 
din_tsk   (2004-01-10 14:15) [11]

Чогото ругается на RC.width


 
YuRock ©   (2004-01-10 14:18) [12]

Снова извините. RC.width надо изменить на Rc.Right, а Rc.Height на Rc.Bottom


 
din_tsk   (2004-01-10 14:26) [13]

Получается таже печенька: Рисунок просто обрезается


 
YuRock ©   (2004-01-10 14:40) [14]

Напишите еще


Rc.Left := 0;
Rc.Top := 0;


Должно работать - я проверил!


 
din_tsk   (2004-01-10 14:46) [15]

Работает!!! Большое спасибо!!!!!!


 
EvgeniusII   (2004-01-10 15:04) [16]

Извините, я не понял задачи: Те надо, что бы картинка произвольной формы(например 120*100) помещалась в квадратный ()
или какой-либо другой битмап с размерами 50*50 (к примеру)
не сжимаясь или не растягиваясь и не обрезаясь?
Может я глючу. Но не реально картинку не сжимать или не обрезать. А если надо сделать или то или другое, то это все делается без кода.А при zoome нельзя элементарным кодом скрыть
недостатки растрового изображения. Побробуй все конвертировать в векторный формат, а затем увеличивай, растягивай, сжимай без потери четкости.


 
Mihey ©   (2004-01-10 17:09) [17]

> Побробуй все конвертировать в векторный формат, а затем увеличивай, растягивай, сжимай без потери четкости.

Чушь говоришь. Просто от Timage надо уже давно отказываться.


 
kor@lex ©   (2004-01-11 13:20) [18]

Я не знаю правельноли я тебя понял но тебе надо всего лишь растинуть картинку .
Значит делай вот так
Image1.streach:=true;{эта функция натягивает картинку на Image1}
Image1.width:=Image1.width-100;{изменяем размеры Image1 ,а значит и картинки. Тоже самое и с height}



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

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

Наверх




Память: 0.5 MB
Время: 0.031 c
1-63232
serg128
2004-01-09 12:49
2004.01.20
Как спрятать процесс в Win98?


3-62995
Sanich
2003-12-23 15:28
2004.01.20
Помогите с фильрацией по дате


14-63401
ИМХО
2003-12-27 20:02
2004.01.20
Футбол. Англия. Премьер-Лига. Трудоголики.


1-63252
Maxkat
2004-01-08 19:53
2004.01.20
WinExec, проблема с ненужным копированием файлов


11-63046
Интересующийся
2003-02-01 01:06
2004.01.20
А зачем? =)