TBitmap.ScanLine是什麼意思?最后一滴血都貢獻出來了!!!(44分)

  • 主题发起人 主题发起人 fancy105
  • 开始时间 开始时间
F

fancy105

Unregistered / Unconfirmed
GUEST, unregistred user!
TBitmap類的ScanLine屬性有什麼作用的?請給出詳細的解譯!
 
An efficient way to draw images when you need to access individual pixels is
to use the bitmap ScanLine property. For general-purpose usage, you can set up
the bitmap pixel format to 24 bits and then treat the pointer returned from
ScanLine as an array of RGB. Otherwise, you will need to know the native format
of the ScanLine property. This example shows how to use ScanLine to get pixels
one line at a time.
自己处理BITMAP上的点
 
tbitmap.scanline[rowindex]
返回位图上第rowindex行像素的第一个像素的指针
 
返回一张位图上的一行
(一张位图可视为由多行组成)
 
是數組的指針嗎﹐那它包含的元素怎么訪問﹖
 
读一行数据
 
cann't understand!
 
一次性读取一行象素,可能速度会快一点吧!!!(实际上我还没碰到快的)
 
scanline=scan line
具体去http://homepages.borland.com/efg2lab看把
 
tbitmap.scanline[rowindex] 返回 一个数组,包含了一行的颜色,
但是每个点包含几个字节,和bitmap的格式有关
比如,你要先检查 TBitmap.PixelFormat
假如 TBitmap.PixelFormat=pf24bit ,那么一个点包含24位,就是3个字节
var P : PByteArray;
P := BitMap.ScanLine[你需要读取的第n行,注意第一行是0];
p[0]、p[1]、p[2] 是第n行的第1个点的 R、G、B 3个颜色的值
p[3]、p[4]、p[5] 是第n行的第2个点的 R、G、B 3个颜色的值
…………
假如 TBitmap.PixelFormat=pf8bit ,那么一个点包含8位(256色位图),就是每个点1个字节
var P : PByteArray;
P := BitMap.ScanLine[你需要读取的第n行,注意第一行是0];
p[0] 是第n行的第1个点的颜色的值
p[1] 是第n行的第2个点的颜色的值
……
 
楼上的解释很专业哦 收藏
 
TBitmap.ScanLine得到位图某行的指针.
 
还是tyn说得正确
 
Activer,你的说法不对啊,难道Pipi.兄的说法有什么问题吗,
为什么看到卷起千堆土说了这么一句就说:还是它说的正确啊
我觉得pipi.兄的说法又详细又对啊
 
多人接受答案了。
 
后退
顶部