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

Вниз

TDBImage, TImage   Найти похожие ветки 

 
Valeri   (2004-05-27 11:18) [0]

Можно ли (и как !!!) отмасштабировать изображение в TDBImage (или, в крайнем случае, в TImage)? Т.е. Размер TDBImage должен остаться прежним, а картинка увеличиться (или уменьшиться). Спасибо.


 
Sun bittern ©   (2004-05-27 11:29) [1]

Canvas.BrushCopy
Canvas.StretchDraw


 
Valeri   (2004-05-27 12:15) [2]

Пожалуйста, подробней, с примером, для тупых.
Есть DBImage1, определенного размера, который в моем случае менять нельзя. Картинка не влазит. Надо сделать так, чтобы она стала меньше.


 
Valeri   (2004-05-27 12:48) [3]

Ничего не получается !!! :-(


 
Sun bittern ©   (2004-05-27 12:54) [4]

Надо сделать так, чтобы она стала меньше.

TDBImage.Stretch := True;


 
Valeri   (2004-05-27 12:56) [5]

Но картинка просто размажется по имиджу, а надо пропорционально.


 
Valeri   (2004-05-27 13:08) [6]

Может, все-же примерчик с StretchDraw подкинете?  ;-)


 
Sun bittern ©   (2004-05-27 13:13) [7]

>> Но картинка просто размажется по имиджу, а надо пропорционально.

Что значит размножается!!!??? :( Изображение должно растянутся/сжаться по размерам клиентской области компанента TDBImage


 
Valeri   (2004-05-27 13:15) [8]

Не размножается, а размажется, т.е. не сохраняться пропорции


 
Sun bittern ©   (2004-05-27 13:38) [9]

А врубился. Для пропорций нужно юзать как это в теликах то по умному непомню (формат соотношения чтоли). Высоту дели на ширину получаем некий коэффициент. Даллее наоборот Ширину делим на высоту - получаем второй коэфф. Далее определяем какой коэфф. лучше. Потом одна из сторон домножается на этот коэфф. Точно всего этого непомню, могу ошибаться


 
Valeri   (2004-05-27 13:44) [10]

Да с коэффициентами соображу, не в том trouble.
Я НЕ ЗНАЮ КАК ИЗМЕНИТЬ МАСШТАБ КАРТИНКИ , а не размер компоненты *Image.


 
Valeri   (2004-05-27 13:56) [11]

Господа, прошу прощения за орешниковый вопрос. Уже допёр.
Наверное, трудно было понять, чего мне надо.
Отвечаю сам себе -
AutoSize := False
Stretch  := True
А Image1.Height и Image1.Width подсчитываю пропорционально, как мне надо (это не вопрос программирования, а вопрос логики) - и получаю картинку, вписавшуюся куда мне надо.


 
Sun bittern ©   (2004-05-27 13:58) [12]

Типа Zoom чтли нужно? Чисто такого в TDBImage врядли есть. Тогда Sun bittern ©   (27.05.04 11:29) [1] + Sun bittern ©   (27.05.04 13:38) [9] чтобы неразмазанно. Скорее всего еще временный TBitMap понадобится. Canvas.BrushCopy - есть пример в справке. Canvas.StretchDraw - вывести картинку в заданный прямоугольни Rect.


 
Valeri   (2004-05-27 14:23) [13]

Точно, нужно что-то типа зума. Со стрэтчдравом что-то с налета не вышло. Всё работает, как написал в Valeri   (27.05.04 13:56) [11].
Например, выравнивание по высоте:

    Coeff := ScrollBox1.Height / DBImage1.Height;
    DBImage1.Height := ScrollBox1.Height;
    DBImage1.WIdth := Round(DBImage1.WIdth * Coeff);

только с округлением неважнец. Надеюсь, что-нить придумаю.
Спасибо.



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

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

Наверх




Память: 0.49 MB
Время: 0.062 c
3-1084430202
Tornado
2004-05-13 10:36
2004.06.06
PostMessage


9-1076059427
nexxiss
2004-02-06 12:23
2004.06.06
Game development tools ...


14-1084759068
Думкин
2004-05-17 05:57
2004.06.06
С днем рождения! 17 мая


1-1085384535
i2e
2004-05-24 11:42
2004.06.06
Надо разложить строку "1,4,6-8,15,22"


14-1084860282
Viking
2004-05-18 10:04
2004.06.06
Периодика по программированию