我正在尝试将一些 Delphi 代码转换为 Python PIL。问题是两方面的。首先,我不是 Delphi 程序员。其次,我今天之前没有使用过 PIL,所以我可能在这两个方面都有问题。
case PixelFormat of
pf32bit: PixSize:=4;
pf24bit: PixSize:=3;
pf16bit: PixSize:=2;
end;
BitCounter:=0;
for i:=0 to Height-1 do begin
Row:=ScanLine[i];
PB:=@Row[PixSize-1];
for j:=0 to Width-1 do begin
Ch[BitCounter] := (PB^ and 1);
....
inc(BitCounter);
inc(PB, PixSize);
end;
所以我知道 PixelFormat 属性表示每个像素的大小(以字节为单位)。我还知道 ScanLine 方法应该获取代表线条的像素数组。我没有得到的是,我倾向于将每个像素可视化为 RGB 值。我习惯于提取颜色值的最低有效位。但是,我认为我什至不确定现有代码正在提取什么。我有一些 python PIL 代码可以提取同一图像中每个像素的 RGB 值,但我不知道 RGB 值的元组与之前代码中获得的 PB 变量相比如何。根据一些实验,我猜它根本无法比较。
提前致谢。