gpt4 book ai didi

delphi - 从鼠标光标下的像素中获取 alphachannel 值

转载 作者:行者123 更新时间:2023-12-03 18:38:09 25 4
gpt4 key购买 nike

如何使用 Delphi 2010 使用 GDIPlus 从 TImage 中鼠标光标下的像素获取 alpha 值?

我试过了,但 A 总是 255?我做错了什么?

procedure TFormMain.Image1MouseMove ( Sender: TObject; Shift: TShiftState; X, Y: Integer );
var
GPBitmap: TGPBitmap;
iColorRef: Cardinal;
iColor: TColor;
A, R, G, B: Byte;
iARGB: ARGB;
begin

if Assigned ( Image1.Picture ) then
begin

GPBitmap := TGPBitmap.Create ( Image1.Picture.Bitmap.Handle );
try

// Get alpha 0-255 from GPBitmap
GPBitmap.GetPixel ( X, Y, iColorRef );
iARGB := ColorRefToARGB ( iColorRef );
A := GetAlpha ( iARGB );
AlphaUnderCursor1.Caption := 'Alpha: ' + IntToStr ( A );

iColor := Image1.Canvas.Pixels [ X, Y ];
GetRGB ( iColor, R, G, B );
Shape1.Brush.Color := iColor;

finally
GPBitmap.Free;
end;

end;

最佳答案

问题是显示器上的图像没有透明度。

从根本上说,您在显示器上看到的每个像素都没有透明度。

即想象一下点击 Print Scrn,然后将您的桌面副本粘贴到 Paint 中。您不会找到任何部分透明的像素,因为没有。至少你会看到壁纸的像素。

很抱歉给您带来不便。

关于delphi - 从鼠标光标下的像素中获取 alphachannel 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10129594/

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