读书人

怎么获取内存中bmp图片的某个坐标的颜

发布时间: 2012-05-02 15:36:04 作者: rapoo

如何获取内存中bmp图片的某个坐标的颜色?
比如内存中有一个bmp1,来自于截屏,我想获取bmp1的坐标为[100,100]这个点的RGB值,求代码?谢谢

[解决办法]
var
p: PByteArray;
begin
for y := 0 to Bmp.Height - 1 do
begin
p := Bmp.scanline[y];
for x := 0 to Bmp.Width - 1 do
begin
红色:=p[x * 3 + 1];
绿色:=p[x * 3 + 2];
蓝色:=p[x * 3 + 3]
end;
end;
end;
bmp1的坐标为[100,100],就是x=100,y=100;
[解决办法]
用scanline需要知道bmp的位深,也许还要取调色板信息。
就算不需要调色板,24位色和32位色的内存排布也有区别。

读书人网 >.NET

热点推荐