Вниз
Скачать: CL | DM;

Ещё один вопрос про ScanLine   Найти похожие ветки 

← →
Maks Realov   (2004-06-25 11:45) [0]

Ведь функция ScanLine применима только к объекту класса TBitmap, который должен содержать какую-то предварительно в него загруженную картинку. Проблема в том, что мне надо в run-time масштабировать контрол, на котором я отрисовываю свою графику. Как быть? Размеры-то у картинки, загруженной в TBitmap фиксированные.
Спасибо.


← →
Maks Realov   (2004-06-25 11:46) [1]

...и туда же: как при отрисовке использовать 32-х битную палитру?


← →
TUser ©   (2004-06-25 12:12) [2]

TImage.Stretch


← →
Maks Realov   (2004-06-25 12:19) [3]

так при Stretch разрешение картики не меняется. Она просто растягивается. А мне надо, что бы при отрисовки графика, к примеру, увеличить одну из осей, что бы была возможность рассматривать больший интервал.


← →
Григорьев Антон ©   (2004-06-25 12:25) [4]

Почему фиксированные-то? У TBitmap есть свойства Width, Height - меняйте себе на здоровье. А ещё есть свойство PixelFormat, которое показывает, сколько бит на пиксел приходится.


← →
TUser ©   (2004-06-25 12:28) [5]

Т.е. ты хочешь растянуть картинку по горизонтали, а по вертикали ничего не делать? Тогда, надо перерисовывать саму картинку.


← →
MBo ©   (2004-06-25 12:29) [6]

1. Непонятно, причем тут Scanline
2. Если нужно без растяжки выводить на контрол кусок битмапа, используй TCanvas.CopyRect, Draw или BitBlt, а для растяжения-сжатия - TCanvas.StretchDraw или StretchBlt
3. 32-х битных палитр не существует. возможно, имеется в виду TBitmap.PixelFormat=pf32Bit?


← →
Maks Realov   (2004-06-25 12:33) [7]

Спасибо всем. Думаю ваши советы меня вылечат!


← →
Maks Realov   (2004-06-25 13:04) [8]

Получается так, что если я не гружу картинку в BitMap, а делаю просто:

 Brush.Color := clBlack;
 Brush.Style := bsSolid
 Image1.Picture.Bitmap.Canvas.FillRect(Image1.BoundsRect);

То вызыв
Image1.Picture.BitMap.ScanLine[i];
выдаёт ту же ошибку. Что-то я не понимаю.
Грубо говоря - как мне в run-time создать картинку нужных размеров и загрузить её в BitMap моего Image?


← →
Григорьев Антон ©   (2004-06-25 13:34) [9]

Для начала забудьте про TImage, создайте TBitmap, сделайте с ним всё, что хотите, а потом TImage.Picture.Bitmap:=... - так будет правильнее.


← →
icWasya ©   (2004-06-25 14:34) [10]

просто Борманы немножко перемудрили -
когда первый раз обращаются к TImage.Canvas и Picture = Nil, то создаётся TBitmap размером c Image, и все всегда думают, что напрямую обращаются к Image



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.019 c
14-1088004352
Igorek
2004-06-23 19:25
2004.07.11
Есть идея - УСиВНС - Критикуйте!


1-1087545504
Mitrofan
2004-06-18 11:58
2004.07.11
Как по существующему меню приложения построить дерево


6-1084736475
_man
2004-05-16 23:41
2004.07.11
WOL


14-1087544162
КаПиБаРа
2004-06-18 11:36
2004.07.11
Пишу рецензию на диплом


1-1088523699
dimon_programmer
2004-06-29 19:41
2004.07.11
Извлечь DateTime из FTLastAcsessed




   Наверх