有关PbyteArray方面问题!(0分)

  • 主题发起人 主题发起人 horse0915
  • 开始时间 开始时间
H

horse0915

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样交将24位图像转为PbyteArray!

 
不明白,

PByteArray 是一种字节数组,可以用来存取位图的的一行中各像素值

对 24位图来说,每个像素占三个点,要想处理其坐标为(x,y)的点,请用如下代码

var
bmp: TBitmap;
p: PByteArray;
b, g, r: Byte; // 注意顺序
begin
...
p := bmp.ScanLine[y];
b := p[3 * x];
g := p[3 * x + 1];
r := p[3 * x + 2];
end;
 
To cqbaobao:
因为bmp.scanline(y) 存取位图的的一行中各像素值
那我可不可以以另外一个Pbytearray数组去累加这些行的各像素值
(即整幅图像的像素值)tks!
 
也就是实现类似GetDIBits的功能, GetDIBits的功能
复制后恢复会失真, 24位则成为256色了
 
后退
顶部