gpt4 book ai didi

delphi - 如何在FMX2中直接访问TBitmap像素(TBitmap.ScanLine替换)?

转载 作者:行者123 更新时间:2023-12-03 15:21:13 24 4
gpt4 key购买 nike

FMX.Types.TBitmap类有 ScanLine FMX (FireMonkey) 中的属性,但似乎该属性已被删除,并且在 FMX2 (FireMonkey FM2) 中丢失。

有什么解决办法吗?我们如何直接在 FMX2 中访问 TBitmap 内容?

最佳答案

要直接访问,您需要使用 Map方法。该文档包含许多示例,例如 FMX.AlphaColorToScanline :

function TForm1.TestAlphaColorToScanline(ABitmap: TBitmap;
start, count: integer): TBitmap;
var
bitdata1, bitdata2: TBitmapData;
begin
Result := TBitmap.Create(Round(ABitmap.Width), Round(count));
if (ABitmap.Map(TMapAccess.maRead, bitdata1) and
Result.Map(TMapAccess.maWrite, bitdata2)) then
begin
try
AlphaColorToScanline(@PAlphaColorArray(bitdata1.Data)
[start * (bitdata1.Pitch div GetPixelFormatBytes(ABitmap.PixelFormat))],
bitdata2.Data, Round(Result.Height * Result.Width),
ABitmap.PixelFormat);
finally
ABitmap.Unmap(bitdata1);
Result.Unmap(bitdata2);
end;
end;
end;

关于delphi - 如何在FMX2中直接访问TBitmap像素(TBitmap.ScanLine替换)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15185502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com