Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Вниз

Как сделать 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.01 c
3-62979
kostyan
2003-12-24 09:21
2004.01.20
SharedStream


1-63247
Evgeny78
2004-01-09 09:05
2004.01.20
Ошибка


14-63374
ertong
2003-12-28 15:11
2004.01.20
Алгоритм Флойда Стейнберга


11-63045
=Sniper=
2003-05-04 12:32
2004.01.20
Editbox и Combobox


1-63117
Ramario
2004-01-08 10:58
2004.01.20
Количество дней





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский