Форум: "Основная";
Текущий архив: 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