![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ещё один вопрос про ScanLine [D6, Win2k, WinXP]
Maks Realov © (2004-06-25 11:45:00)Ведь функция ScanLine применима только к объекту класса TBitmap, который должен содержать какую-то предварительно в него загруженную картинку. Проблема в том, что мне надо в run-time масштабировать контрол, на котором я отрисовываю свою графику. Как быть? Размеры-то у картинки, загруженной в TBitmap фиксированные.
Спасибо.
icWasya (2004-06-25 14:34:00) [1]просто Борманы немножко перемудрили -
когда первый раз обращаются к TImage.Canvas и Picture = Nil, то создаётся TBitmap размером c Image, и все всегда думают, что напрямую обращаются к Image
Григорьев Антон (2004-06-25 13:34:00) [2]Для начала забудьте про TImage, создайте TBitmap, сделайте с ним всё, что хотите, а потом TImage.Picture.Bitmap:=... - так будет правильнее.
Maks Realov (2004-06-25 13:04:00) [3]Получается так, что если я не гружу картинку в BitMap, а делаю просто:
Brush.Color := clBlack;
Brush.Style := bsSolid
Image1.Picture.Bitmap.Canvas.FillRect(Image1.BoundsRect);
То вызыв
Image1.Picture.BitMap.ScanLine[i];
выдаёт ту же ошибку. Что-то я не понимаю.
Грубо говоря - как мне в run-time создать картинку нужных размеров и загрузить её в BitMap моего Image?
Maks Realov (2004-06-25 12:33:00) [4]Спасибо всем. Думаю ваши советы меня вылечат!
MBo (2004-06-25 12:29:00) [5]1. Непонятно, причем тут Scanline
2. Если нужно без растяжки выводить на контрол кусок битмапа, используй TCanvas.CopyRect, Draw или BitBlt, а для растяжения-сжатия - TCanvas.StretchDraw или StretchBlt
3. 32-х битных палитр не существует. возможно, имеется в виду TBitmap.PixelFormat=pf32Bit?
TUser (2004-06-25 12:28:00) [6]Т.е. ты хочешь растянуть картинку по горизонтали, а по вертикали ничего не делать? Тогда, надо перерисовывать саму картинку.
Григорьев Антон (2004-06-25 12:25:00) [7]Почему фиксированные-то? У TBitmap есть свойства Width, Height - меняйте себе на здоровье. А ещё есть свойство PixelFormat, которое показывает, сколько бит на пиксел приходится.
Maks Realov (2004-06-25 12:19:00) [8]так при Stretch разрешение картики не меняется. Она просто растягивается. А мне надо, что бы при отрисовки графика, к примеру, увеличить одну из осей, что бы была возможность рассматривать больший интервал.
TUser (2004-06-25 12:12:00) [9]TImage.Stretch
Maks Realov (2004-06-25 11:46:00) [10]...и туда же: как при отрисовке использовать 32-х битную палитру?